class ReporterTests(unittest.TestCase): stream = BytesIO() reporter = utils.Reporter('test data', 2, 4, stream, 1) def setUp(self): self.stream.seek(0) self.stream.truncate() def test_level0(self): sw = self.reporter.system_message(0, 'debug output') self.assertEquals( sw.pformat(), """\ <system_message level="0" source="test data" type="DEBUG"> <paragraph> debug output """) self.assertEquals(self.stream.getvalue(), b('test data:: (DEBUG/0) debug output\n')) def test_level1(self): sw = self.reporter.system_message(1, 'a little reminder') self.assertEquals( sw.pformat(), """\ <system_message level="1" source="test data" type="INFO"> <paragraph> a little reminder """) self.assertEquals(self.stream.getvalue(), b('')) def test_level2(self): sw = self.reporter.system_message(2, 'a warning') self.assertEquals( sw.pformat(), """\ <system_message level="2" source="test data" type="WARNING"> <paragraph> a warning """) self.assertEquals(self.stream.getvalue(), b('test data:: (WARNING/2) a warning\n')) def test_level3(self): sw = self.reporter.system_message(3, 'an error') self.assertEquals( sw.pformat(), """\ <system_message level="3" source="test data" type="ERROR"> <paragraph> an error """) self.assertEquals(self.stream.getvalue(), b('test data:: (ERROR/3) an error\n')) def test_level4(self): self.assertRaises(utils.SystemMessage, self.reporter.system_message, 4, 'a severe error, raises an exception') self.assertEquals( self.stream.getvalue(), b('test data:: (SEVERE/4) ' 'a severe error, raises an exception\n'))
class QuietReporterTests(unittest.TestCase): stream = StringIO() reporter = utils.Reporter('test data', 5, 5, stream, 0) def setUp(self): self.stream.seek(0) self.stream.truncate() def test_debug(self): sw = self.reporter.debug('a debug message') # None because debug is disabled. self.assertEqual(sw, None) self.assertEqual(self.stream.getvalue(), '') def test_info(self): sw = self.reporter.info('an informational message') self.assertEqual( sw.pformat(), """\ <system_message level="1" source="test data" type="INFO"> <paragraph> an informational message """) self.assertEqual(self.stream.getvalue(), '') def test_warning(self): sw = self.reporter.warning('a warning') self.assertEqual( sw.pformat(), """\ <system_message level="2" source="test data" type="WARNING"> <paragraph> a warning """) self.assertEqual(self.stream.getvalue(), '') def test_error(self): sw = self.reporter.error('an error') self.assertEqual( sw.pformat(), """\ <system_message level="3" source="test data" type="ERROR"> <paragraph> an error """) self.assertEqual(self.stream.getvalue(), '') def test_severe(self): sw = self.reporter.severe('a severe error') self.assertEqual( sw.pformat(), """\ <system_message level="4" source="test data" type="SEVERE"> <paragraph> a severe error """) self.assertEqual(self.stream.getvalue(), '')
class ReporterTests(unittest.TestCase): stream = StringIO() reporter = utils.Reporter('test data', 2, 4, stream, 1) def setUp(self): self.stream.seek(0) self.stream.truncate() def test_level0(self): sw = self.reporter.system_message(0, 'debug output') self.assertEqual( sw.pformat(), """\ <system_message level="0" source="test data" type="DEBUG"> <paragraph> debug output """) self.assertEqual(self.stream.getvalue(), 'test data:: (DEBUG/0) debug output\n') def test_level1(self): sw = self.reporter.system_message(1, 'a little reminder') self.assertEqual( sw.pformat(), """\ <system_message level="1" source="test data" type="INFO"> <paragraph> a little reminder """) self.assertEqual(self.stream.getvalue(), '') def test_level2(self): sw = self.reporter.system_message(2, 'a warning') self.assertEqual( sw.pformat(), """\ <system_message level="2" source="test data" type="WARNING"> <paragraph> a warning """) self.assertEqual(self.stream.getvalue(), 'test data:: (WARNING/2) a warning\n') def test_level3(self): sw = self.reporter.system_message(3, 'an error') self.assertEqual( sw.pformat(), """\ <system_message level="3" source="test data" type="ERROR"> <paragraph> an error """) self.assertEqual(self.stream.getvalue(), 'test data:: (ERROR/3) an error\n') def test_level4(self): self.assertRaises(utils.SystemMessage, self.reporter.system_message, 4, 'a severe error, raises an exception') self.assertEqual( self.stream.getvalue(), 'test data:: (SEVERE/4) ' 'a severe error, raises an exception\n') def test_unicode_message(self): sw = self.reporter.system_message(0, u'mesidʒ') self.assertEqual( sw.pformat(), u"""\ <system_message level="0" source="test data" type="DEBUG"> <paragraph> mesidʒ """) def test_unicode_message_from_exception(self): """Workaround for Python < 2.6 bug: unicode(<exception instance>) uses __str__ and hence fails with unicode message""" try: raise Exception(u'mesidʒ') except Exception as err: sw = self.reporter.system_message(0, err) self.assertEqual( sw.pformat(), u"""\ <system_message level="0" source="test data" type="DEBUG"> <paragraph> mesidʒ """)