Example #1
0
    def test_unnamed_parameterized_testcase(self):
        """Test unnamed parameterized test cases.

    Unnamed parameterized test cases might have non-alphanumeric characters in
    their test method names. This test ensures xml_reporter handles them
    correctly.
    """
        class ParameterizedTest(parameterized.TestCase):
            @parameterized.parameters(('a (b.c)', ))
            def test_prefix(self, case):
                self.assertTrue(case.startswith('a'))

        start_time = 1000
        end_time = 1200
        result = self._make_result(
            (start_time, start_time, end_time, end_time))
        test = ParameterizedTest(methodName='test_prefix0')
        result.startTestRun()
        result.startTest(test)
        result.addSuccess(test)
        result.stopTest(test)
        result.stopTestRun()
        result.printErrors()

        run_time = end_time - start_time
        classname = xml_reporter._escape_xml_attr(
            unittest.util.strclass(test.__class__))
        expected_re = OUTPUT_STRING % {
            'suite_name': 'ParameterizedTest',
            'tests': 1,
            'failures': 0,
            'errors': 0,
            'run_time': run_time,
            'start_time': re.escape(self._iso_timestamp(start_time), ),
            'test_name':
            re.escape('test_prefix0 ('a (b.c)')'),
            'classname': classname,
            'status': 'run',
            'result': 'completed',
            'attributes': '',
            'message': ''
        }
        self._assert_match(expected_re, self.xml_stream.getvalue())
Example #2
0
 def test_escape_xml(self):
     self.assertEqual(xml_reporter._escape_xml_attr('"Hi" <\'>\t\r\n'),
                      '&quot;Hi&quot;&#x20;&lt;&apos;&gt;&#x9;&#xD;&#xA;')
Example #3
0
def xml_escaped_exception_type(exception_type):
    return xml_reporter._escape_xml_attr(str(exception_type))