Merge branch '17301-cwl-oom' refs #17301
authorPeter Amstutz <peter.amstutz@curii.com>
Mon, 25 Apr 2022 20:06:06 +0000 (16:06 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Mon, 25 Apr 2022 20:06:06 +0000 (16:06 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

1  2 
sdk/cwl/tests/test_submit.py

index aecc7a590be046fafce94b588c4af6bf4286aad5,adee2d20898770aaea1335fc617ee5b6ad553981..5092fc45756d9f07ae983ba9547e3245147a2cf9
@@@ -47,22 -47,17 +47,22 @@@ _rootDesc = Non
  
  def stubs(func):
      @functools.wraps(func)
 +    @mock.patch("uuid.uuid4")
      @mock.patch("arvados.commands.keepdocker.list_images_in_arv")
      @mock.patch("arvados.collection.KeepClient")
      @mock.patch("arvados.keep.KeepClient")
      @mock.patch("arvados.events.subscribe")
 -    def wrapped(self, events, keep_client1, keep_client2, keepdocker, *args, **kwargs):
 +    def wrapped(self, events, keep_client1, keep_client2, keepdocker, uuid4, *args, **kwargs):
          class Stubs(object):
              pass
          stubs = Stubs()
          stubs.events = events
          stubs.keepdocker = keepdocker
  
 +        uuid4.side_effect = ["df80736f-f14d-4b10-b2e3-03aa27f034bb", "df80736f-f14d-4b10-b2e3-03aa27f034b1",
 +                             "df80736f-f14d-4b10-b2e3-03aa27f034b2", "df80736f-f14d-4b10-b2e3-03aa27f034b3",
 +                             "df80736f-f14d-4b10-b2e3-03aa27f034b4", "df80736f-f14d-4b10-b2e3-03aa27f034b5"]
 +
          def putstub(p, **kwargs):
              return "%s+%i" % (hashlib.md5(p).hexdigest(), len(p))
          keep_client1().put.side_effect = putstub
@@@ -353,6 -348,12 +353,12 @@@ class TestSubmit(unittest.TestCase)
          cwltool.process._names = set()
          arvados_cwl.arvdocker.arv_docker_clear_cache()
  
+     def tearDown(self):
+         root_logger = logging.getLogger('')
+         # Remove existing RuntimeStatusLoggingHandlers if they exist
+         handlers = [h for h in root_logger.handlers if not isinstance(h, arvados_cwl.executor.RuntimeStatusLoggingHandler)]
+         root_logger.handlers = handlers
  
      @mock.patch("time.sleep")
      @stubs
                           stubs.expect_container_request_uuid + '\n')
          self.assertEqual(exited, 0)
  
-     def tearDown(self):
-         arvados_cwl.arvdocker.arv_docker_clear_cache()
      @mock.patch("arvados.commands.keepdocker.find_one_image_hash")
      @mock.patch("cwltool.docker.DockerCommandLineJob.get_image")
      @mock.patch("arvados.api")
              self.assertEqual(exited, 1)
              self.assertRegex(
                  capture_stderr.getvalue(),
-                 r"Collection uuid zzzzz-4zz18-zzzzzzzzzzzzzzz not found")
+                 r"Collection\s*uuid\s*zzzzz-4zz18-zzzzzzzzzzzzzzz\s*not\s*found")
          finally:
              cwltool_logger.removeHandler(stderr_logger)
  
@@@ -1525,6 -1523,13 +1528,13 @@@ class TestCreateWorkflow(unittest.TestC
          cwltool.process._names = set()
          arvados_cwl.arvdocker.arv_docker_clear_cache()
  
+     def tearDown(self):
+         root_logger = logging.getLogger('')
+         # Remove existing RuntimeStatusLoggingHandlers if they exist
+         handlers = [h for h in root_logger.handlers if not isinstance(h, arvados_cwl.executor.RuntimeStatusLoggingHandler)]
+         root_logger.handlers = handlers
      @stubs
      def test_create(self, stubs):
          project_uuid = 'zzzzz-j7d0g-zzzzzzzzzzzzzzz'
                           self.existing_workflow_uuid + '\n')
          self.assertEqual(exited, 0)
  
 +
      @stubs
      def test_update_name(self, stubs):
          exited = arvados_cwl.main(