diff --git a/googletest/test/gtest_list_output_unittest.py b/googletest/test/gtest_list_output_unittest.py index 0d3a8765..9d3d1c04 100644 --- a/googletest/test/gtest_list_output_unittest.py +++ b/googletest/test/gtest_list_output_unittest.py @@ -28,13 +28,12 @@ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - """Unit test for Google Test's --gtest_list_tests flag. A user can ask Google Test to list all tests by specifying the ---gtest_list_tests flag. If output is requested, via --gtest_output=xml -or --gtest_output=json, the tests are listed, with extra information in the -output file. +--gtest_list_tests flag. If output is requested, via --gtest_output=xml +or --gtest_output=json, the tests are listed, with extra information in the +output file. This script tests such functionality by invoking gtest_list_output_unittest_ (a program written with Google Test) the command line flags. """ @@ -42,13 +41,11 @@ This script tests such functionality by invoking gtest_list_output_unittest_ import os import re import gtest_test_utils -import gtest_xml_test_utils GTEST_LIST_TESTS_FLAG = '--gtest_list_tests' GTEST_OUTPUT_FLAG = '--gtest_output' - -EXPECTED_XML = """<\?xml version="1.0" encoding="UTF-8"\?> +EXPECTED_XML = r"""<\?xml version="1.0" encoding="UTF-8"\?> @@ -57,7 +54,7 @@ EXPECTED_XML = """<\?xml version="1.0" encoding="UTF-8"\?> """ -EXPECTED_JSON = """{ +EXPECTED_JSON = r"""{ "tests": 2, "name": "AllTests", "testsuites": \[ @@ -81,10 +78,11 @@ EXPECTED_JSON = """{ } """ + class GTestListTestsOutputUnitTest(gtest_test_utils.TestCase): + """Unit test for Google Test's list tests with output to file functionality. """ - Unit test for Google Test's list tests with output to file functionality. - """ + def testXml(self): """Verifies XML output for listing tests in a Google Test binary. @@ -100,36 +98,30 @@ class GTestListTestsOutputUnitTest(gtest_test_utils.TestCase): tests that the XML output is expected. """ self._TestOutput('json', EXPECTED_JSON) - def _GetOutput(self, format): - """ - Retrieves the content from the output file - """ - file_path = os.path.join(gtest_test_utils.GetTempDir(), - 'test_out.' + format) - gtest_prog_path = gtest_test_utils.GetTestExecutablePath('gtest_list_output_unittest_') - command = ([gtest_prog_path, - '%s=%s:%s' % (GTEST_OUTPUT_FLAG, format, file_path), - '--gtest_list_tests']) + def _GetOutput(self, out_format): + file_path = os.path.join(gtest_test_utils.GetTempDir(), + 'test_out.' + out_format) + gtest_prog_path = gtest_test_utils.GetTestExecutablePath( + 'gtest_list_output_unittest_') + + command = ([ + gtest_prog_path, + '%s=%s:%s' % (GTEST_OUTPUT_FLAG, out_format, file_path), + '--gtest_list_tests' + ]) environ_copy = os.environ.copy() p = gtest_test_utils.Subprocess( - command, - env=environ_copy, - working_dir=gtest_test_utils.GetTempDir()) - + command, env=environ_copy, working_dir=gtest_test_utils.GetTempDir()) + self.assert_(p.exited) self.assertEquals(0, p.exit_code) with open(file_path) as f: - result = f.read() + result = f.read() return result - - - def _TestOutput(self, format, expected_output): - """ - Tests that the output is similar to the expected - """ - actual = self._GetOutput(format) + def _TestOutput(self, test_format, expected_output): + actual = self._GetOutput(test_format) actual_lines = actual.splitlines() expected_lines = expected_output.splitlines() line_count = 0 @@ -137,15 +129,13 @@ class GTestListTestsOutputUnitTest(gtest_test_utils.TestCase): expected_line = expected_lines[line_count] expected_line_re = re.compile(expected_line.strip()) self.assert_( - expected_line_re.match(actual_line.strip()), - ('actual output of "%s",\n' - 'which does not match expected regex of "%s"\n' - 'on line %d' % - (actual, expected_output, line_count)) - ) + expected_line_re.match(actual_line.strip()), + ('actual output of "%s",\n' + 'which does not match expected regex of "%s"\n' + 'on line %d' % (actual, expected_output, line_count))) line_count = line_count + 1 if __name__ == '__main__': os.environ['GTEST_STACK_TRACE_DEPTH'] = '1' - gtest_test_utils.Main() \ No newline at end of file + gtest_test_utils.Main()