18835: Add a test for the is_in_collection feature of PathMapper
authorPeter Amstutz <peter.amstutz@curii.com>
Mon, 25 Apr 2022 21:00:53 +0000 (17:00 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Mon, 25 Apr 2022 21:03:38 +0000 (17:03 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

.licenseignore
sdk/cwl/tests/fake-keep-mount/fake_collection_dir/.arvados#collection [new file with mode: 0644]
sdk/cwl/tests/fake-keep-mount/fake_collection_dir/subdir/banana.txt [new file with mode: 0644]
sdk/cwl/tests/test_pathmapper.py

index d13eee39015963c6d33ec6e48e6dbb52298258a8..387aeda9445daa25d45dac26dea99b4745456809 100644 (file)
@@ -51,6 +51,7 @@ docker/jobs/1078ECD7.key
 sdk/cwl/tests/input/blorp.txt
 sdk/cwl/tests/tool/blub.txt
 sdk/cwl/tests/federation/data/*
+sdk/cwl/tests/fake-keep-mount/fake_collection_dir/.arvados#collection
 sdk/go/manifest/testdata/*_manifest
 sdk/java/.classpath
 sdk/java/pom.xml
diff --git a/sdk/cwl/tests/fake-keep-mount/fake_collection_dir/.arvados#collection b/sdk/cwl/tests/fake-keep-mount/fake_collection_dir/.arvados#collection
new file mode 100644 (file)
index 0000000..fb13a7e
--- /dev/null
@@ -0,0 +1,3 @@
+{
+  "portable_data_hash": "99999999999999999999999999999991+99"
+}
\ No newline at end of file
diff --git a/sdk/cwl/tests/fake-keep-mount/fake_collection_dir/subdir/banana.txt b/sdk/cwl/tests/fake-keep-mount/fake_collection_dir/subdir/banana.txt
new file mode 100644 (file)
index 0000000..05631af
--- /dev/null
@@ -0,0 +1,5 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+strawberry
index cbd5ba1bc1a7b4c7052f40af80cb0ee874a2703b..194092db7a0461e4174d12df3cd88c5a32a3cafc 100644 (file)
@@ -238,3 +238,16 @@ class TestPathmap(unittest.TestCase):
         p._pathmap["keep:99999999999999999999999999999991+99/hw.py"] = True
         p._pathmap["_:123"] = True
         self.assertTrue(p.needs_new_collection(a))
+
+    def test_is_in_collection(self):
+        arvrunner = arvados_cwl.executor.ArvCwlExecutor(self.api)
+        self.maxDiff = 1000000
+
+        cwd = os.getcwd()
+        p = ArvPathMapper(arvrunner, [{
+            "class": "File",
+            "location": "file://"+cwd+"/tests/fake-keep-mount/fake_collection_dir/subdir/banana.txt"
+        }], "", "/test/%s", "/test/%s/%s")
+
+        self.assertEqual({"file://"+cwd+"/tests/fake-keep-mount/fake_collection_dir/subdir/banana.txt": MapperEnt(resolved='keep:99999999999999999999999999999991+99/subdir/banana.txt', target='/test/99999999999999999999999999999991+99/subdir/banana.txt', type='File', staged=True)},
+                         p._pathmap)