From cb4407b480a8e28d05d4b2a2eb720f5064997874 Mon Sep 17 00:00:00 2001 From: Jonathan Lange Date: Sun, 25 Mar 2012 15:57:45 +0100 Subject: Don't write anything until startTestRun is called. --- python/subunit/test_results.py | 23 ++++++++++++----------- python/subunit/tests/test_test_results.py | 5 +++++ 2 files changed, 17 insertions(+), 11 deletions(-) (limited to 'python') diff --git a/python/subunit/test_results.py b/python/subunit/test_results.py index f64126d..73adfab 100644 --- a/python/subunit/test_results.py +++ b/python/subunit/test_results.py @@ -579,14 +579,15 @@ class TestByTestResult(testtools.TestResult): self._details = details -def csv_result(stream): - writer = csv.writer(stream) - w = writer.writerow - # XXX: Not great that we write this out immediately. Probably better to - # wait for startTestRun. - w(['test', 'status', 'start_time', 'stop_time']) - def on_test(test, status, start_time, stop_time, tags, details): - # XXX: Don't really know how to serialize tags or details into csv in - # a useful way. - w([test.id(), status, start_time, stop_time]) - return TestByTestResult(on_test) +class csv_result(TestByTestResult): + + def __init__(self, stream): + super(csv_result, self).__init__(self._on_test) + self._write_row = csv.writer(stream).writerow + + def _on_test(self, test, status, start_time, stop_time, tags, details): + self._write_row([test.id(), status, start_time, stop_time]) + + def startTestRun(self): + super(csv_result, self).startTestRun() + self._write_row(['test', 'status', 'start_time', 'stop_time']) diff --git a/python/subunit/tests/test_test_results.py b/python/subunit/tests/test_test_results.py index 1a95e9e..0e8d81e 100644 --- a/python/subunit/tests/test_test_results.py +++ b/python/subunit/tests/test_test_results.py @@ -486,6 +486,11 @@ class TestCsvResult(testtools.TestCase): [['test', 'status', 'start_time', 'stop_time']], self.parse_stream(stream)) + def test_no_output_before_events(self): + stream = StringIO() + subunit.test_results.csv_result(stream) + self.assertEqual([], self.parse_stream(stream)) + def test_suite(): loader = subunit.tests.TestUtil.TestLoader() -- cgit v1.2.1