Exemple #1
0
 def test_split_cmdline_args_with_expandable_tags(self):
     splitted = ToolSpecification.split_cmdline_args("@@optional_inputs@@")
     self.assertEqual(splitted, ["@@optional_inputs@@"])
     splitted = ToolSpecification.split_cmdline_args(
         "@@url:database name with spaces@@")
     self.assertEqual(splitted, ["@@url:database name with spaces@@"])
     splitted = ToolSpecification.split_cmdline_args(
         "@@url:spaced name@@ -a @@url:another spaced tag@@")
     self.assertEqual(
         splitted,
         ["@@url:spaced name@@", "-a", "@@url:another spaced tag@@"])
Exemple #2
0
 def test_find_optional_input_files_without_wildcards(self):
     with TemporaryDirectory() as temp_dir:
         optional_file = pathlib.Path(temp_dir, "1.txt")
         optional_file.touch()
         pathlib.Path(temp_dir, "should_not_be_found.txt").touch()
         logger = mock.MagicMock()
         optional_input_files = ["1.txt", "does_not_exist.dat"]
         tool_specification = ToolSpecification(
             "spec name",
             "Python",
             temp_dir, [],
             None,
             logger,
             inputfiles_opt=optional_input_files)
         executable = ExecutableItem(
             "executable name",
             work_dir=temp_dir,
             output_dir="",
             tool_specification=tool_specification,
             cmd_line_args=[],
             logger=logger,
         )
         resources = [
             ProjectItemResource(None, "file", optional_file.as_uri())
         ]
         file_paths = executable._find_optional_input_files(resources)
         self.assertEqual(file_paths, {"1.txt": [str(optional_file)]})
Exemple #3
0
 def test_find_optional_input_files_in_sub_directory(self):
     with TemporaryDirectory() as temp_dir:
         pathlib.Path(temp_dir, "subdir").mkdir()
         optional_file1 = pathlib.Path(temp_dir, "subdir", "1.txt")
         optional_file1.touch()
         optional_file2 = pathlib.Path(temp_dir, "subdir", "data.dat")
         optional_file2.touch()
         pathlib.Path(temp_dir, "should_not_be_found.jpg").touch()
         logger = mock.MagicMock()
         optional_input_files = ["subdir/*.txt", "subdir/data.dat"]
         tool_specification = ToolSpecification(
             "spec name",
             "Python",
             temp_dir, [],
             None,
             logger,
             inputfiles_opt=optional_input_files)
         executable = ExecutableItem(
             "executable name",
             work_dir=temp_dir,
             output_dir="",
             tool_specification=tool_specification,
             cmd_line_args=[],
             logger=logger,
         )
         resources = [
             ProjectItemResource(None, "file", optional_file1.as_uri()),
             ProjectItemResource(None, "file", optional_file2.as_uri()),
         ]
         file_paths = executable._find_optional_input_files(resources)
         self.assertEqual(
             file_paths, {
                 "subdir/*.txt": [str(optional_file1)],
                 "subdir/data.dat": [str(optional_file2)]
             })
Exemple #4
0
 def test_get_cmdline_args_with_optional_inputs(self):
     specification = ToolSpecification("", "", "", [], None, None)
     specification.cmdline_args = ["@@optional_inputs@@"]
     args = specification.get_cmdline_args([], {}, {})
     self.assertEqual(args, [""])
     specification.cmdline_args = ["@@optional_inputs@@"]
     args = specification.get_cmdline_args(["file.dat", "table.csv"], {},
                                           {})
     self.assertEqual(args, ["file.dat", "table.csv"])
     specification.cmdline_args = ["--inputs=@@optional_inputs@@"]
     args = specification.get_cmdline_args(["file.dat", "table.csv"], {},
                                           {})
     self.assertEqual(args, ["--inputs=file.dat", "table.csv"])
Exemple #5
0
 def test_get_cmdline_args_with_datastore_urls(self):
     specification = ToolSpecification("", "", "", [], None, None)
     specification.cmdline_args = ["@@url:ds1@@"]
     args = specification.get_cmdline_args(
         [], {"ds1": "sqlite:///Q:\\databases\\base.sqlite"}, {})
     self.assertEqual(args, ["sqlite:///Q:\\databases\\base.sqlite"])
     specification.cmdline_args = ["--url=@@url:ds1@@"]
     args = specification.get_cmdline_args(
         [], {}, {"ds1": "sqlite:///Q:\\databases\\base.sqlite"})
     self.assertEqual(args, ["--url=sqlite:///Q:\\databases\\base.sqlite"])
Exemple #6
0
 def test_split_cmdline_args(self):
     splitted = ToolSpecification.split_cmdline_args("")
     self.assertFalse(bool(splitted))
     splitted = ToolSpecification.split_cmdline_args("--version")
     self.assertEqual(splitted, ["--version"])
     splitted = ToolSpecification.split_cmdline_args(
         "--input=data.dat -h 5")
     self.assertEqual(splitted, ["--input=data.dat", "-h", "5"])
     splitted = ToolSpecification.split_cmdline_args(
         '--output="a long file name.txt"')
     self.assertEqual(splitted, ['--output=a long file name.txt'])
     splitted = ToolSpecification.split_cmdline_args(
         "--file='file name with spaces.dat' -i 3")
     self.assertEqual(splitted,
                      ["--file=file name with spaces.dat", "-i", "3"])
     splitted = ToolSpecification.split_cmdline_args(
         "'quotation \"within\" a quotation'")
     self.assertEqual(splitted, ['quotation \"within\" a quotation'])
Exemple #7
0
 def test_get_cmdline_args_without_expansion(self):
     specification = ToolSpecification("", "", "", [], None, None)
     self.assertFalse(specification.get_cmdline_args([], {}, {}))
     specification.cmdline_args = ["-a", "--version", "-xvf"]
     self.assertEqual(specification.get_cmdline_args([], {}, {}),
                      ["-a", "--version", "-xvf"])
Exemple #8
0
 def test_split_cmdline_args_with_consecutive_tags(self):
     splitted = ToolSpecification.split_cmdline_args(
         "@@optional_inputs@@@@optional_inputs@@")
     self.assertEqual(splitted, ["@@optional_inputs@@@@optional_inputs@@"])