Imported Upstream version 1.14.0
[platform/upstream/gtest.git] / googletest / test / googletest-catch-exceptions-test.py
index d38d91a..180e18d 100755 (executable)
@@ -46,12 +46,14 @@ FILTER_FLAG = FLAG_PREFIX + 'filter'
 # Path to the googletest-catch-exceptions-ex-test_ binary, compiled with
 # exceptions enabled.
 EX_EXE_PATH = gtest_test_utils.GetTestExecutablePath(
-    'googletest-catch-exceptions-ex-test_')
+    'googletest-catch-exceptions-ex-test_'
+)
 
 # Path to the googletest-catch-exceptions-test_ binary, compiled with
 # exceptions disabled.
 EXE_PATH = gtest_test_utils.GetTestExecutablePath(
-    'googletest-catch-exceptions-no-ex-test_')
+    'googletest-catch-exceptions-no-ex-test_'
+)
 
 environ = gtest_test_utils.environ
 SetEnvVar = gtest_test_utils.SetEnvVar
@@ -64,7 +66,8 @@ SetEnvVar = gtest_test_utils.SetEnvVar
 SetEnvVar(gtest_test_utils.PREMATURE_EXIT_FILE_ENV_VAR, None)
 
 TEST_LIST = gtest_test_utils.Subprocess(
-    [EXE_PATH, LIST_TESTS_FLAG], env=environ).output
+    [EXE_PATH, LIST_TESTS_FLAG], env=environ
+).output
 
 SUPPORTS_SEH_EXCEPTIONS = 'ThrowsSehException' in TEST_LIST
 
@@ -72,33 +75,47 @@ if SUPPORTS_SEH_EXCEPTIONS:
   BINARY_OUTPUT = gtest_test_utils.Subprocess([EXE_PATH], env=environ).output
 
 EX_BINARY_OUTPUT = gtest_test_utils.Subprocess(
-    [EX_EXE_PATH], env=environ).output
+    [EX_EXE_PATH], env=environ
+).output
 
 
 # The tests.
 if SUPPORTS_SEH_EXCEPTIONS:
-  # pylint:disable-msg=C6302
+
   class CatchSehExceptionsTest(gtest_test_utils.TestCase):
     """Tests exception-catching behavior."""
 
-
     def TestSehExceptions(self, test_output):
-      self.assert_('SEH exception with code 0x2a thrown '
-                   'in the test fixture\'s constructor'
-                   in test_output)
-      self.assert_('SEH exception with code 0x2a thrown '
-                   'in the test fixture\'s destructor'
-                   in test_output)
-      self.assert_('SEH exception with code 0x2a thrown in SetUpTestSuite()'
-                   in test_output)
-      self.assert_('SEH exception with code 0x2a thrown in TearDownTestSuite()'
-                   in test_output)
-      self.assert_('SEH exception with code 0x2a thrown in SetUp()'
-                   in test_output)
-      self.assert_('SEH exception with code 0x2a thrown in TearDown()'
-                   in test_output)
-      self.assert_('SEH exception with code 0x2a thrown in the test body'
-                   in test_output)
+      self.assertIn(
+          (
+              'SEH exception with code 0x2a thrown '
+              "in the test fixture's constructor"
+          ),
+          test_output,
+      )
+      self.assertIn(
+          (
+              'SEH exception with code 0x2a thrown '
+              "in the test fixture's destructor"
+          ),
+          test_output,
+      )
+      self.assertIn(
+          'SEH exception with code 0x2a thrown in SetUpTestSuite()', test_output
+      )
+      self.assertIn(
+          'SEH exception with code 0x2a thrown in TearDownTestSuite()',
+          test_output,
+      )
+      self.assertIn(
+          'SEH exception with code 0x2a thrown in SetUp()', test_output
+      )
+      self.assertIn(
+          'SEH exception with code 0x2a thrown in TearDown()', test_output
+      )
+      self.assertIn(
+          'SEH exception with code 0x2a thrown in the test body', test_output
+      )
 
     def testCatchesSehExceptionsWithCxxExceptionsEnabled(self):
       self.TestSehExceptions(EX_BINARY_OUTPUT)
@@ -110,126 +127,188 @@ if SUPPORTS_SEH_EXCEPTIONS:
 class CatchCxxExceptionsTest(gtest_test_utils.TestCase):
   """Tests C++ exception-catching behavior.
 
-     Tests in this test case verify that:
-     * C++ exceptions are caught and logged as C++ (not SEH) exceptions
-     * Exception thrown affect the remainder of the test work flow in the
-       expected manner.
+  Tests in this test case verify that:
+  * C++ exceptions are caught and logged as C++ (not SEH) exceptions
+  * Exception thrown affect the remainder of the test work flow in the
+    expected manner.
   """
 
   def testCatchesCxxExceptionsInFixtureConstructor(self):
     self.assertTrue(
         'C++ exception with description '
         '"Standard C++ exception" thrown '
-        'in the test fixture\'s constructor' in EX_BINARY_OUTPUT,
-        EX_BINARY_OUTPUT)
-    self.assert_('unexpected' not in EX_BINARY_OUTPUT,
-                 'This failure belongs in this test only if '
-                 '"CxxExceptionInConstructorTest" (no quotes) '
-                 'appears on the same line as words "called unexpectedly"')
-
-  if ('CxxExceptionInDestructorTest.ThrowsExceptionInDestructor' in
-      EX_BINARY_OUTPUT):
+        "in the test fixture's constructor"
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
+    self.assertTrue(
+        'unexpected' not in EX_BINARY_OUTPUT,
+        (
+            'This failure belongs in this test only if '
+            '"CxxExceptionInConstructorTest" (no quotes) '
+            'appears on the same line as words "called unexpectedly"'
+        ),
+    )
+
+  if (
+      'CxxExceptionInDestructorTest.ThrowsExceptionInDestructor'
+      in EX_BINARY_OUTPUT
+  ):
 
     def testCatchesCxxExceptionsInFixtureDestructor(self):
       self.assertTrue(
           'C++ exception with description '
           '"Standard C++ exception" thrown '
-          'in the test fixture\'s destructor' in EX_BINARY_OUTPUT,
-          EX_BINARY_OUTPUT)
+          "in the test fixture's destructor"
+          in EX_BINARY_OUTPUT,
+          EX_BINARY_OUTPUT,
+      )
       self.assertTrue(
           'CxxExceptionInDestructorTest::TearDownTestSuite() '
-          'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+          'called as expected.'
+          in EX_BINARY_OUTPUT,
+          EX_BINARY_OUTPUT,
+      )
 
   def testCatchesCxxExceptionsInSetUpTestCase(self):
     self.assertTrue(
         'C++ exception with description "Standard C++ exception"'
-        ' thrown in SetUpTestSuite()' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        ' thrown in SetUpTestSuite()'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInConstructorTest::TearDownTestSuite() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInConstructorTest::TearDownTestSuite() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertFalse(
-        'CxxExceptionInSetUpTestSuiteTest constructor '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInSetUpTestSuiteTest constructor called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertFalse(
-        'CxxExceptionInSetUpTestSuiteTest destructor '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInSetUpTestSuiteTest destructor called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertFalse(
-        'CxxExceptionInSetUpTestSuiteTest::SetUp() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInSetUpTestSuiteTest::SetUp() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertFalse(
-        'CxxExceptionInSetUpTestSuiteTest::TearDown() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInSetUpTestSuiteTest::TearDown() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertFalse(
-        'CxxExceptionInSetUpTestSuiteTest test body '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInSetUpTestSuiteTest test body called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
 
   def testCatchesCxxExceptionsInTearDownTestCase(self):
     self.assertTrue(
         'C++ exception with description "Standard C++ exception"'
-        ' thrown in TearDownTestSuite()' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        ' thrown in TearDownTestSuite()'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
 
   def testCatchesCxxExceptionsInSetUp(self):
     self.assertTrue(
         'C++ exception with description "Standard C++ exception"'
-        ' thrown in SetUp()' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        ' thrown in SetUp()'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
+    self.assertTrue(
+        'CxxExceptionInSetUpTest::TearDownTestSuite() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInSetUpTest::TearDownTestSuite() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInSetUpTest destructor called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInSetUpTest destructor '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInSetUpTest::TearDown() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInSetUpTest::TearDown() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
-    self.assert_('unexpected' not in EX_BINARY_OUTPUT,
-                 'This failure belongs in this test only if '
-                 '"CxxExceptionInSetUpTest" (no quotes) '
-                 'appears on the same line as words "called unexpectedly"')
+        'unexpected' not in EX_BINARY_OUTPUT,
+        (
+            'This failure belongs in this test only if '
+            '"CxxExceptionInSetUpTest" (no quotes) '
+            'appears on the same line as words "called unexpectedly"'
+        ),
+    )
 
   def testCatchesCxxExceptionsInTearDown(self):
     self.assertTrue(
         'C++ exception with description "Standard C++ exception"'
-        ' thrown in TearDown()' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        ' thrown in TearDown()'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInTearDownTest::TearDownTestSuite() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInTearDownTest::TearDownTestSuite() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInTearDownTest destructor '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInTearDownTest destructor called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
 
   def testCatchesCxxExceptionsInTestBody(self):
     self.assertTrue(
         'C++ exception with description "Standard C++ exception"'
-        ' thrown in the test body' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        ' thrown in the test body'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInTestBodyTest::TearDownTestSuite() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInTestBodyTest::TearDownTestSuite() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInTestBodyTest destructor '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInTestBodyTest destructor called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
     self.assertTrue(
-        'CxxExceptionInTestBodyTest::TearDown() '
-        'called as expected.' in EX_BINARY_OUTPUT, EX_BINARY_OUTPUT)
+        'CxxExceptionInTestBodyTest::TearDown() called as expected.'
+        in EX_BINARY_OUTPUT,
+        EX_BINARY_OUTPUT,
+    )
 
   def testCatchesNonStdCxxExceptions(self):
     self.assertTrue(
         'Unknown C++ exception thrown in the test body' in EX_BINARY_OUTPUT,
-        EX_BINARY_OUTPUT)
+        EX_BINARY_OUTPUT,
+    )
 
   def testUnhandledCxxExceptionsAbortTheProgram(self):
     # Filters out SEH exception tests on Windows. Unhandled SEH exceptions
     # cause tests to show pop-up windows there.
-    FITLER_OUT_SEH_TESTS_FLAG = FILTER_FLAG + '=-*Seh*'
+    filter_out_seh_tests_flag = FILTER_FLAG + '=-*Seh*'
     # By default, Google Test doesn't catch the exceptions.
     uncaught_exceptions_ex_binary_output = gtest_test_utils.Subprocess(
-        [EX_EXE_PATH,
-         NO_CATCH_EXCEPTIONS_FLAG,
-         FITLER_OUT_SEH_TESTS_FLAG],
-        env=environ).output
-
-    self.assert_('Unhandled C++ exception terminating the program'
-                 in uncaught_exceptions_ex_binary_output)
-    self.assert_('unexpected' not in uncaught_exceptions_ex_binary_output)
+        [EX_EXE_PATH, NO_CATCH_EXCEPTIONS_FLAG, filter_out_seh_tests_flag],
+        env=environ,
+    ).output
+
+    self.assertIn(
+        'Unhandled C++ exception terminating the program',
+        uncaught_exceptions_ex_binary_output,
+    )
+    self.assertNotIn('unexpected', uncaught_exceptions_ex_binary_output)
 
 
 if __name__ == '__main__':