(self)
| 2354 | self.assertNotIn('SPAM SPAM SPAM', output) |
| 2355 | |
| 2356 | def test_xml(self): |
| 2357 | code = textwrap.dedent(r""" |
| 2358 | import unittest |
| 2359 | |
| 2360 | class VerboseTests(unittest.TestCase): |
| 2361 | def test_failed(self): |
| 2362 | print("abc \x1b def") |
| 2363 | self.fail() |
| 2364 | """) |
| 2365 | testname = self.create_test(code=code) |
| 2366 | |
| 2367 | # Run sequentially |
| 2368 | filename = os_helper.TESTFN |
| 2369 | self.addCleanup(os_helper.unlink, filename) |
| 2370 | |
| 2371 | output = self.run_tests(testname, "--junit-xml", filename, |
| 2372 | exitcode=EXITCODE_BAD_TEST) |
| 2373 | self.check_executed_tests(output, testname, |
| 2374 | failed=testname, |
| 2375 | stats=TestStats(1, 1, 0)) |
| 2376 | |
| 2377 | # Test generated XML |
| 2378 | with open(filename, encoding="utf8") as fp: |
| 2379 | content = fp.read() |
| 2380 | |
| 2381 | testsuite = ElementTree.fromstring(content) |
| 2382 | self.assertEqual(int(testsuite.get('tests')), 1) |
| 2383 | self.assertEqual(int(testsuite.get('errors')), 0) |
| 2384 | self.assertEqual(int(testsuite.get('failures')), 1) |
| 2385 | |
| 2386 | testcase = testsuite[0][0] |
| 2387 | self.assertEqual(testcase.get('status'), 'run') |
| 2388 | self.assertEqual(testcase.get('result'), 'completed') |
| 2389 | self.assertGreater(float(testcase.get('time')), 0) |
| 2390 | for out in testcase.iter('system-out'): |
| 2391 | self.assertEqual(out.text, r"abc \x1b def") |
| 2392 | |
| 2393 | def test_nonascii(self): |
| 2394 | code = textwrap.dedent(r""" |
nothing calls this directly
no test coverage detected