diff options
author | Robert Collins <robertc@robertcollins.net> | 2014-03-03 10:54:38 +1300 |
---|---|---|
committer | Robert Collins <robertc@robertcollins.net> | 2014-03-03 10:54:38 +1300 |
commit | 552214a0a6774228512ff07bea441388fe14d509 (patch) | |
tree | b11936cbf79d12ad5962d48c67d302e0713a9664 | |
parent | dbc0c6cbbd7f6cc6a3b2bb617525e6f16b817359 (diff) | |
download | testrepository-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.py | 8 | ||||
-rw-r--r-- | testrepository/ui/model.py | 2 |
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 |