summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Collins <robertc@robertcollins.net>2014-03-03 10:54:38 +1300
committerRobert Collins <robertc@robertcollins.net>2014-03-03 10:54:38 +1300
commit552214a0a6774228512ff07bea441388fe14d509 (patch)
treeb11936cbf79d12ad5962d48c67d302e0713a9664
parentdbc0c6cbbd7f6cc6a3b2bb617525e6f16b817359 (diff)
downloadtestrepository-552214a0a6774228512ff07bea441388fe14d509.tar.gz
Improve error rendering of listing issues.
Errors are now shown as a stream to the user, and the exception just contains the process exit code.
-rw-r--r--testrepository/testcommand.py8
-rw-r--r--testrepository/ui/model.py2
2 files changed, 6 insertions, 4 deletions
diff --git a/testrepository/testcommand.py b/testrepository/testcommand.py
index f2d51ef..7101aef 100644
--- a/testrepository/testcommand.py
+++ b/testrepository/testcommand.py
@@ -305,9 +305,11 @@ class TestListingFixture(Fixture):
v2.ByteStreamToStreamResult(io.BytesIO(out), 'stdout').run(
results.CatFiles(new_out))
out = new_out.getvalue()
+ self.ui.output_stream(io.BytesIO(out))
+ self.ui.output_stream(io.BytesIO(err))
raise ValueError(
"Non-zero exit code (%d) from test listing."
- " stdout=%r, stderr=%r" % (run_proc.returncode, out, err))
+ % (run_proc.returncode))
ids = parse_enumeration(out)
return ids
finally:
@@ -454,8 +456,8 @@ class TestListingFixture(Fixture):
out, err = run_proc.communicate()
if run_proc.returncode:
raise ValueError(
- "test_run_concurrency failed: exit code %d, stderr=%r" % (
- run_proc.returncode, err))
+ "test_run_concurrency failed: exit code %d, stderr='%s'" % (
+ run_proc.returncode, err.decode('utf8', 'replace')))
return int(out.strip())
def local_concurrency(self):
diff --git a/testrepository/ui/model.py b/testrepository/ui/model.py
index 6a30af8..6f441ad 100644
--- a/testrepository/ui/model.py
+++ b/testrepository/ui/model.py
@@ -33,7 +33,7 @@ class ProcessModel(object):
def communicate(self):
self.ui.outputs.append(('communicate',))
- return self.stdout.getvalue(), ''
+ return self.stdout.getvalue(), b''
def wait(self):
return self.returncode