15694: Add test
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Wed, 9 Oct 2019 18:56:45 +0000 (14:56 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Wed, 9 Oct 2019 18:56:45 +0000 (14:56 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

sdk/cwl/tests/test_container.py

index 3374e1c13f8004100c2f3c114edbfba2db26dec6..b1034222ea8daf06e7869b50e1020d84808ef638 100644 (file)
@@ -534,6 +534,21 @@ class TestContainer(unittest.TestCase):
         except RuntimeError:
             self.fail("RuntimeStatusLoggingHandler should not be called recursively")
 
+
+    # Test to make sure that an exception raised from get_current_container doesn't
+    @mock.patch("arvados_cwl.util.get_current_container")
+    def test_runtime_status_get_current_container_exception(self, gcc_mock):
+        self.setup_and_test_container_executor_and_logging(gcc_mock)
+        root_logger = logging.getLogger('')
+
+        # get_current_container is invoked when we call runtime_status_update
+        # so try and log again!
+        gcc_mock.side_effect = Exception("Second Error")
+        try:
+            root_logger.error("First Error")
+        except RuntimeError:
+            self.fail("RuntimeStatusLoggingHandler should not be called recursively")
+
     @mock.patch("arvados_cwl.ArvCwlExecutor.runtime_status_update")
     @mock.patch("arvados_cwl.util.get_current_container")
     @mock.patch("arvados.collection.CollectionReader")