@@ -237,6 +237,42 @@ def test_classnames(self):
237237 r'classname="tests\.testsuite\.(XMLTestRunnerTestCase\.)?'
238238 r'DummySubTest" name="test_subTest_pass"' .encode ('utf8' ))
239239
240+ def test_expected_failure (self ):
241+ suite = unittest .TestSuite ()
242+ suite .addTest (self .DummyTest ('test_expected_failure' ))
243+ outdir = BytesIO ()
244+
245+ self ._test_xmlrunner (suite , outdir = outdir )
246+
247+ self .assertNotIn (b'<failure' , outdir .getvalue ())
248+ self .assertNotIn (b'<error' , outdir .getvalue ())
249+ self .assertIn (b'<skip' , outdir .getvalue ())
250+
251+ def test_unexpected_success (self ):
252+ suite = unittest .TestSuite ()
253+ suite .addTest (self .DummyTest ('test_unexpected_success' ))
254+ outdir = BytesIO ()
255+
256+ self ._test_xmlrunner (suite , outdir = outdir )
257+
258+ self .assertNotIn (b'<failure' , outdir .getvalue ())
259+ self .assertIn (b'<error' , outdir .getvalue ())
260+ self .assertNotIn (b'<skip' , outdir .getvalue ())
261+
262+ def test_xmlrunner_safe_xml_encoding_name (self ):
263+ suite = unittest .TestSuite ()
264+ suite .addTest (self .DummyTest ('test_pass' ))
265+ outdir = BytesIO ()
266+ runner = xmlrunner .XMLTestRunner (
267+ stream = self .stream , output = outdir , verbosity = self .verbosity ,
268+ ** self .runner_kwargs )
269+ runner .run (suite )
270+ outdir .seek (0 )
271+ output = outdir .read ()
272+ firstline = output .splitlines ()[0 ]
273+ # test for issue #74
274+ self .assertIn ('encoding="UTF-8"' .encode ('utf8' ), firstline )
275+
240276 def test_xmlrunner_non_ascii (self ):
241277 suite = unittest .TestSuite ()
242278 suite .addTest (self .DummyTest ('test_non_ascii_skip' ))
0 commit comments