Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
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'))
Пример #4
0
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'))