comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:d30785e31577
1 import pytest
2
3 from cwltool.pathmapper import PathMapper, normalizeFilesDirs
4
5
6 def test_subclass():
7 class SubPathMapper(PathMapper):
8 def __init__(self, referenced_files, basedir, stagedir, new):
9 super(SubPathMapper, self).__init__(referenced_files, basedir, stagedir)
10 self.new = new
11
12 pathmap = SubPathMapper([], '', '', 'new')
13 assert pathmap.new is not None, 'new'
14
15 normalization_parameters = [
16 ('strip trailing slashes',
17 {'class': 'Directory',
18 'location': '/foo/bar/'
19 },
20 {'class': 'Directory',
21 'location': '/foo/bar',
22 'basename': 'bar'
23 }
24 ),
25 ('file',
26 {'class': 'File',
27 'location': 'file1.txt'
28 },
29 {'class': 'File',
30 'location': 'file1.txt',
31 'basename': 'file1.txt',
32 'nameext': '.txt',
33 'nameroot': 'file1'
34 }
35 ),
36 ('file with local uri',
37 {'class': 'File',
38 'location': 'file:///foo/file1.txt'
39 },
40 {'class': 'File',
41 'location': 'file:///foo/file1.txt',
42 'basename': 'file1.txt',
43 'nameext': '.txt',
44 'nameroot': 'file1'
45 }
46 ),
47 ('file with http url',
48 {'class': 'File',
49 'location': 'http://example.com/file1.txt'
50 },
51 {'class': 'File',
52 'location': 'http://example.com/file1.txt',
53 'basename': 'file1.txt',
54 'nameext': '.txt',
55 'nameroot': 'file1'
56 }
57 )
58 ]
59
60 @pytest.mark.parametrize('name,file_dir,expected', normalization_parameters)
61 def test_normalizeFilesDirs(name, file_dir, expected):
62 normalizeFilesDirs(file_dir)
63 assert file_dir == expected, name
64
65 # (filename, expected: (nameroot, nameext))
66 basename_generation_parameters = [
67 ('foo.bar', ('foo', '.bar')),
68 ('foo', ('foo', '')),
69 ('.foo', ('.foo', '')),
70 ('foo.', ('foo', '.')),
71 ('foo.bar.baz', ('foo.bar', '.baz'))
72 ]
73 @pytest.mark.parametrize('filename,expected', basename_generation_parameters)
74 def test_basename_field_generation(filename, expected):
75 nameroot, nameext = expected
76 expected = {
77 'class': 'File',
78 'location': '/foo/' + filename,
79 'basename': filename,
80 'nameroot': nameroot,
81 'nameext': nameext
82 }
83
84 file = {
85 'class': 'File',
86 'location': '/foo/' + filename
87 }
88
89 normalizeFilesDirs(file)
90 assert file == expected