diff planemo/lib/python3.7/site-packages/cwltool/tests/test_pathmapper.py @ 0:d30785e31577 draft

"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author guerler
date Fri, 31 Jul 2020 00:18:57 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/planemo/lib/python3.7/site-packages/cwltool/tests/test_pathmapper.py	Fri Jul 31 00:18:57 2020 -0400
@@ -0,0 +1,90 @@
+import pytest
+
+from cwltool.pathmapper import PathMapper, normalizeFilesDirs
+
+
+def test_subclass():
+    class SubPathMapper(PathMapper):
+        def __init__(self, referenced_files, basedir, stagedir, new):
+            super(SubPathMapper, self).__init__(referenced_files, basedir, stagedir)
+            self.new = new
+
+    pathmap = SubPathMapper([], '', '', 'new')
+    assert pathmap.new is not None, 'new'
+
+normalization_parameters = [
+    ('strip trailing slashes',
+     {'class': 'Directory',
+      'location': '/foo/bar/'
+      },
+     {'class': 'Directory',
+      'location': '/foo/bar',
+      'basename': 'bar'
+      }
+     ),
+    ('file',
+     {'class': 'File',
+      'location': 'file1.txt'
+      },
+     {'class': 'File',
+      'location': 'file1.txt',
+      'basename': 'file1.txt',
+      'nameext': '.txt',
+      'nameroot': 'file1'
+      }
+     ),
+    ('file with local uri',
+     {'class': 'File',
+      'location': 'file:///foo/file1.txt'
+      },
+     {'class': 'File',
+      'location': 'file:///foo/file1.txt',
+      'basename': 'file1.txt',
+      'nameext': '.txt',
+      'nameroot': 'file1'
+      }
+     ),
+    ('file with http url',
+     {'class': 'File',
+      'location': 'http://example.com/file1.txt'
+      },
+     {'class': 'File',
+      'location': 'http://example.com/file1.txt',
+      'basename': 'file1.txt',
+      'nameext': '.txt',
+      'nameroot': 'file1'
+      }
+     )
+]
+
+@pytest.mark.parametrize('name,file_dir,expected', normalization_parameters)
+def test_normalizeFilesDirs(name, file_dir, expected):
+    normalizeFilesDirs(file_dir)
+    assert file_dir == expected, name
+
+# (filename, expected: (nameroot, nameext))
+basename_generation_parameters = [
+    ('foo.bar', ('foo', '.bar')),
+    ('foo', ('foo', '')),
+    ('.foo', ('.foo', '')),
+    ('foo.', ('foo', '.')),
+    ('foo.bar.baz', ('foo.bar', '.baz'))
+]
+@pytest.mark.parametrize('filename,expected', basename_generation_parameters)
+def test_basename_field_generation(filename, expected):
+    nameroot, nameext = expected
+    expected = {
+        'class': 'File',
+        'location': '/foo/' + filename,
+        'basename': filename,
+        'nameroot': nameroot,
+        'nameext': nameext
+    }
+
+    file = {
+        'class': 'File',
+        'location': '/foo/' + filename
+    }
+
+    normalizeFilesDirs(file)
+    assert file == expected