def setUp(self): self.reportfile = os.path.abspath( os.path.join(os.path.dirname(__file__), 'report.json')) parser = optparse.OptionParser() self.x = LodeJsonReporter() self.x.add_options(parser, env={}) (options, args) = parser.parse_args( ["--with-lodejson", "--lode-report=%s" % self.reportfile]) self.x.configure(options, Config()) suite = ContextSuiteFactory
def setUp(self): self.reportfile = os.path.abspath( os.path.join(os.path.dirname(__file__), 'report.json')) parser = optparse.OptionParser() self.x = LodeJsonReporter() self.x.add_options(parser, env={}) (options, args) = parser.parse_args([ "--with-lodejson", "--lode-report=%s" % self.reportfile ]) self.x.configure(options, Config()) suite = ContextSuiteFactory
class JsonReporterTest(unittest.TestCase): def setUp(self): self.reportfile = os.path.abspath( os.path.join(os.path.dirname(__file__), 'report.json')) parser = optparse.OptionParser() self.x = LodeJsonReporter() self.x.add_options(parser, env={}) (options, args) = parser.parse_args( ["--with-lodejson", "--lode-report=%s" % self.reportfile]) self.x.configure(options, Config()) suite = ContextSuiteFactory def tearDown(self): os.unlink(self.reportfile) def test_with_unicode_string_in_output(self): a = "тест" b = u'тест' print a, b self.assertTrue(True) def get_json_report(self): class DummyStream: pass self.x.report(DummyStream()) f = open(self.reportfile, 'rb') data = f.read() f.close() return data def test_addFailure(self): test = mktest() self.x.beforeTest(test) str = u"%s is not 'equal' to %s" % (u'Тест', u'тест') try: raise AssertionError(str) except AssertionError: some_err = sys.exc_info() ec, ev, tb = some_err ev = unicode(ev) some_err = (ec, ev, tb) self.x.addFailure(test, some_err) result = json.loads(self.get_json_report()) stats = result['stats'] self.assertEqual(stats, { u'total': 1, u'errors': 0, u'failures': 1, u'skipped': 0, u'passes': 0 }) tc = result['testcases'][0] tc_report = { u'status': u'fail', u'systemerr': u'', u'name': u'runTest', u'systemout': u'', u'actions': [], u'classname': u'test_json_reporter.TestCase', u'priority': u'unknown' } self.assertDictContainsSubset(tc_report, tc) self.assertTrue(time_taken.match(unicode(tc['time'])), 'Expected decimal time: %s' % tc['time']) err = tc['error'] self.assertEqual(err['type'], "%s.AssertionError" % (AssertionError.__module__, )) err_lines = err['tb'].strip().split("\n") self.assertEqual(err_lines[-1], str) self.assertEqual(err_lines[-2], ' raise AssertionError(str)') def test_addError(self): test = mktest() self.x.beforeTest(test) str = "some error happened" try: raise RuntimeError(str) except RuntimeError: some_err = sys.exc_info() ec, ev, tb = some_err ev = unicode(ev) some_err = (ec, ev, tb) self.x.addError(test, some_err) result = json.loads(self.get_json_report()) stats = result['stats'] self.assertEqual(stats, { u'total': 1, u'errors': 1, u'failures': 0, u'skipped': 0, u'passes': 0 }) tc = result['testcases'][0] tc_report = { u'status': u'error', u'systemerr': u'', u'name': u'runTest', u'systemout': u'', u'actions': [], u'classname': u'test_json_reporter.TestCase', u'priority': u'unknown' } self.assertDictContainsSubset(tc_report, tc) self.assertEqual(tc['classname'], "test_json_reporter.TestCase") self.assertTrue(time_taken.match(unicode(tc['time'])), 'Expected decimal time: %s' % tc['time']) err = tc['error'] self.assertEqual(err['type'], "%s.RuntimeError" % (RuntimeError.__module__, )) err_lines = err['tb'].strip().split("\n") self.assertEqual(err_lines[-1], str) self.assertEqual(err_lines[-2], ' raise RuntimeError(str)') def test_addSuccess(self): test = mktest() self.x.beforeTest(test) self.x.addSuccess(test) result = json.loads(self.get_json_report()) stats = result['stats'] self.assertEqual(stats, { u'total': 1, u'errors': 0, u'failures': 0, u'skipped': 0, u'passes': 1 }) tc = result['testcases'][0] tc_report = { u'status': u'success', u'systemerr': u'', u'name': u'runTest', u'systemout': u'', u'actions': [], u'classname': u'test_json_reporter.TestCase', u'priority': u'unknown' } self.assertDictContainsSubset(tc_report, tc) self.assertTrue(time_taken.match(unicode(tc['time'])), 'Expected decimal time: %s' % tc['time']) self.assertTrue(not tc.get('error'))
class JsonReporterTest(unittest.TestCase): def setUp(self): self.reportfile = os.path.abspath( os.path.join(os.path.dirname(__file__), 'report.json')) parser = optparse.OptionParser() self.x = LodeJsonReporter() self.x.add_options(parser, env={}) (options, args) = parser.parse_args([ "--with-lodejson", "--lode-report=%s" % self.reportfile ]) self.x.configure(options, Config()) suite = ContextSuiteFactory def tearDown(self): os.unlink(self.reportfile) def test_with_unicode_string_in_output(self): a = "тест" b = u'тест' print a, b self.assertTrue(True) def get_json_report(self): class DummyStream: pass self.x.report(DummyStream()) f = open(self.reportfile, 'rb') data = f.read() f.close() return data def test_addFailure(self): test = mktest() self.x.beforeTest(test) str = u"%s is not 'equal' to %s" % (u'Тест', u'тест') try: raise AssertionError(str) except AssertionError: some_err = sys.exc_info() ec, ev, tb = some_err ev = unicode(ev) some_err = (ec, ev, tb) self.x.addFailure(test, some_err) result = json.loads(self.get_json_report()) stats = result['stats'] self.assertEqual(stats, { u'total': 1, u'errors': 0, u'failures': 1, u'skipped': 0, u'passes': 0 }) tc = result['testcases'][0] tc_report = { u'status': u'fail', u'systemerr': u'', u'name': u'runTest', u'systemout': u'', u'actions': [], u'classname': u'test_json_reporter.TestCase', u'priority': u'unknown' } self.assertDictContainsSubset(tc_report, tc) self.assertTrue(time_taken.match(unicode(tc['time'])), 'Expected decimal time: %s' % tc['time']) err = tc['error'] self.assertEqual(err['type'], "%s.AssertionError" % (AssertionError.__module__,)) err_lines = err['tb'].strip().split("\n") self.assertEqual(err_lines[-1], str) self.assertEqual(err_lines[-2], ' raise AssertionError(str)') def test_addError(self): test = mktest() self.x.beforeTest(test) str = "some error happened" try: raise RuntimeError(str) except RuntimeError: some_err = sys.exc_info() ec, ev, tb = some_err ev = unicode(ev) some_err = (ec, ev, tb) self.x.addError(test, some_err) result = json.loads(self.get_json_report()) stats = result['stats'] self.assertEqual(stats, { u'total': 1, u'errors': 1, u'failures': 0, u'skipped': 0, u'passes': 0 }) tc = result['testcases'][0] tc_report = { u'status': u'error', u'systemerr': u'', u'name': u'runTest', u'systemout': u'', u'actions': [], u'classname': u'test_json_reporter.TestCase', u'priority': u'unknown' } self.assertDictContainsSubset(tc_report, tc) self.assertEqual(tc['classname'], "test_json_reporter.TestCase") self.assertTrue(time_taken.match(unicode(tc['time'])), 'Expected decimal time: %s' % tc['time']) err = tc['error'] self.assertEqual(err['type'], "%s.RuntimeError" % (RuntimeError.__module__,)) err_lines = err['tb'].strip().split("\n") self.assertEqual(err_lines[-1], str) self.assertEqual(err_lines[-2], ' raise RuntimeError(str)') def test_addSuccess(self): test = mktest() self.x.beforeTest(test) self.x.addSuccess(test) result = json.loads(self.get_json_report()) stats = result['stats'] self.assertEqual(stats, { u'total': 1, u'errors': 0, u'failures': 0, u'skipped': 0, u'passes': 1 }) tc = result['testcases'][0] tc_report = { u'status': u'success', u'systemerr': u'', u'name': u'runTest', u'systemout': u'', u'actions': [], u'classname': u'test_json_reporter.TestCase', u'priority': u'unknown' } self.assertDictContainsSubset(tc_report, tc) self.assertTrue(time_taken.match(unicode(tc['time'])), 'Expected decimal time: %s' % tc['time']) self.assertTrue(not tc.get('error'))