def test_includes_timing_output(self): io = BytesIO() runner = SubunitTestRunner(stream=io) test = PlaceHolder('name') runner.run(test) client = TimeCollectingTestResult() io.seek(0) subunit.TestProtocolServer(client).readFrom(io) self.assertTrue(len(client.time_called) > 0)
def test_includes_timing_output(self): io = BytesIO() runner = SubunitTestRunner(stream=io) test = PlaceHolder('name') runner.run(test) io.seek(0) eventstream = StreamResult() subunit.ByteStreamToStreamResult(io).run(eventstream) timestamps = [event[-1] for event in eventstream._events if event is not None] self.assertNotEqual([], timestamps)
class TestTestResultStats(unittest.TestCase): """Test for TestResultStats, a TestResult object that generates stats.""" def setUp(self): self.output = StringIO() self.result = subunit.TestResultStats(self.output) self.input_stream = BytesIO() self.test = subunit.ProtocolTestCase(self.input_stream) def test_stats_empty(self): self.test.run(self.result) self.assertEqual(0, self.result.total_tests) self.assertEqual(0, self.result.passed_tests) self.assertEqual(0, self.result.failed_tests) self.assertEqual(set(), self.result.seen_tags) def setUpUsedStream(self): self.input_stream.write( _b("""tags: global test passed success passed test failed tags: local failure failed test error error error test skipped skip skipped test todo xfail todo """)) self.input_stream.seek(0) self.test.run(self.result) def test_stats_smoke_everything(self): # Statistics are calculated usefully. self.setUpUsedStream() self.assertEqual(5, self.result.total_tests) self.assertEqual(2, self.result.passed_tests) self.assertEqual(2, self.result.failed_tests) self.assertEqual(1, self.result.skipped_tests) self.assertEqual(set(["global", "local"]), self.result.seen_tags) def test_stat_formatting(self): expected = (""" Total tests: 5 Passed tests: 2 Failed tests: 2 Skipped tests: 1 Seen tags: global, local """)[1:] self.setUpUsedStream() self.result.formatStats() self.assertEqual(expected, self.output.getvalue())
class TestTestResultStats(unittest.TestCase): """Test for TestResultStats, a TestResult object that generates stats.""" def setUp(self): self.output = StringIO() self.result = subunit.TestResultStats(self.output) self.input_stream = BytesIO() self.test = subunit.ProtocolTestCase(self.input_stream) def test_stats_empty(self): self.test.run(self.result) self.assertEqual(0, self.result.total_tests) self.assertEqual(0, self.result.passed_tests) self.assertEqual(0, self.result.failed_tests) self.assertEqual(set(), self.result.seen_tags) def setUpUsedStream(self): self.input_stream.write(_b("""tags: global test passed success passed test failed tags: local failure failed test error error error test skipped skip skipped test todo xfail todo """)) self.input_stream.seek(0) self.test.run(self.result) def test_stats_smoke_everything(self): # Statistics are calculated usefully. self.setUpUsedStream() self.assertEqual(5, self.result.total_tests) self.assertEqual(2, self.result.passed_tests) self.assertEqual(2, self.result.failed_tests) self.assertEqual(1, self.result.skipped_tests) self.assertEqual(set(["global", "local"]), self.result.seen_tags) def test_stat_formatting(self): expected = (""" Total tests: 5 Passed tests: 2 Failed tests: 2 Skipped tests: 1 Seen tags: global, local """)[1:] self.setUpUsedStream() self.result.formatStats() self.assertEqual(expected, self.output.getvalue())
def test_includes_timing_output(self): io = BytesIO() runner = SubunitTestRunner(stream=io) test = PlaceHolder('name') runner.run(test) io.seek(0) eventstream = StreamResult() subunit.ByteStreamToStreamResult(io).run(eventstream) timestamps = [ event[-1] for event in eventstream._events if event is not None ] self.assertNotEqual([], timestamps)
def test_enumerates_tests_before_run(self): io = BytesIO() runner = SubunitTestRunner(stream=io) test1 = PlaceHolder('name1') test2 = PlaceHolder('name2') case = unittest.TestSuite([test1, test2]) runner.run(case) io.seek(0) eventstream = StreamResult() subunit.ByteStreamToStreamResult(io).run(eventstream) self.assertEqual([ ('status', 'name1', 'exists'), ('status', 'name2', 'exists'), ], [event[:3] for event in eventstream._events[:2]])