[pacman-dev] [PATCH] pmtest: set LC_ALL=C in subprocess.call

Andrew Gregory andrew.gregory.8 at gmail.com
Fri May 10 14:19:05 EDT 2013


LC_ALL=C is required to force pacman's output to English for tests that
rely on that output, but setting it in Makefile.am results in those
tests breaking under different locales when pactest.py is run directly.
This will also ease an eventual transition to python3 which LC_ALL=C
causes to default to ascii encoded strings, creating problems for tests
with unicode strings.

Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
---
 Makefile.am           | 2 +-
 test/pacman/pmtest.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 7b53fd0..28f7f8f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -27,7 +27,7 @@ dist_pkgdata_DATA = \
 check-local: test-pacman test-pacsort test-vercmp test-parseopts
 
 test-pacman: test/pacman src/pacman
-	LC_ALL=C $(PYTHON) $(top_srcdir)/test/pacman/pactest.py --debug=1 \
+	$(PYTHON) $(top_srcdir)/test/pacman/pactest.py --debug=1 \
 		--test $(top_srcdir)/test/pacman/tests/*.py \
 		--scriptlet-shell $(SCRIPTLET_SHELL) \
 		--ldconfig $(LDCONFIG) \
diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py
index 2eafe68..f5a9680 100644
--- a/test/pacman/pmtest.py
+++ b/test/pacman/pmtest.py
@@ -241,7 +241,7 @@ def run(self, pacman):
         # archives are made available more easily.
         time_start = time.time()
         self.retcode = subprocess.call(cmd, stdout=output, stderr=output,
-                cwd=os.path.join(self.root, util.TMPDIR))
+                cwd=os.path.join(self.root, util.TMPDIR), env={'LC_ALL': 'C'})
         time_end = time.time()
         vprint("\ttime elapsed: %.2fs" % (time_end - time_start))
 
-- 
1.8.2.2



More information about the pacman-dev mailing list