annotate get_tests.py @ 14:74d39f98b0c4 draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
author galaxyp
date Fri, 14 Jun 2024 21:41:12 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
1 #!/usr/bin/env python
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
2
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
3 import argparse
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
4 import os.path
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
5 import re
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
6 import shlex
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
7 import sys
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
8 import tempfile
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
9 from typing import (
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
10 Dict,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
11 List,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
12 Optional,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
13 TextIO,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
14 Tuple,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
15 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
16
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
17 from ctdconverter.common.utils import (
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
18 ParameterHardcoder,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
19 parse_hardcoded_parameters,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
20 parse_input_ctds,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
21 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
22 from ctdconverter.galaxy.converter import convert_models
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
23 from CTDopts.CTDopts import (
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
24 CTDModel,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
25 ModelTypeError,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
26 Parameters,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
27 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
28
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
29 SKIP_LIST = [
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
30 r"_prepare\"",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
31 r"_convert",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
32 r"WRITEINI",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
33 r"WRITECTD",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
34 r"INVALIDVALUE",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
35 r"\.ini\.json",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
36 r"OpenSwathMzMLFileCacher .*-convert_back", # - OpenSwathMzMLFileCacher with -convert_back argument https://github.com/OpenMS/OpenMS/issues/4399
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
37 r"MaRaClusterAdapter.*-consensus_out", # - MaRaCluster with -consensus_out (parameter blacklister: https://github.com/OpenMS/OpenMS/issues/4456)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
38 r"FileMerger_1_input1.dta2d.*FileMerger_1_input2.dta ", # - FileMerger with mixed dta dta2d input (ftype can not be specified in the test, dta can not be sniffed)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
39 r'^(TOPP_OpenSwathAnalyzer_test_3|TOPP_OpenSwathAnalyzer_test_4)$', # no suppert for cached mzML
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
40 r'TOPP_SiriusAdapter_[0-9]+$', # Do not test SiriusAdapter https://github.com/OpenMS/OpenMS/issues/7000 .. will be removed anyway
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
41 r'TOPP_AssayGeneratorMetabo_(7|8|9|10|11|12|13|14|15|16|17|18)$' # Skip AssayGeneratorMetabo tests using Sirius https://github.com/OpenMS/OpenMS/issues/7150 (will be replaced by two tools)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
42 ]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
43
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
44
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
45 def get_failing_tests(cmake: List[str]) -> List[str]:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
46 failing_tests = []
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
47 re_fail = re.compile(r"set_tests_properties\(\"([^\"]+)\" PROPERTIES WILL_FAIL 1\)")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
48
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
49 for cmake in args.cmake:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
50 with open(cmake) as cmake_fh:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
51 for line in cmake_fh:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
52 match = re_fail.search(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
53 if match:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
54 failing_tests.append(match.group(1))
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
55 return failing_tests
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
56
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
57
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
58 def fix_tmp_files(line: str, diff_pairs: Dict[str, str]) -> str:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
59 """
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
60 OpenMS tests output to tmp files and compare with FuzzyDiff to the expected file.
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
61 problem: the extension of the tmp files is unusable for test generation.
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
62 unfortunately the extensions used in the DIFF lines are not always usable for the CLI
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
63 (e.g. for prepare_test_data, e.g. CLI expects csv but test file is txt)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
64 this function replaces the tmp file by the expected file.
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
65 """
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
66 cmd = shlex.split(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
67 for i, e in enumerate(cmd):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
68 if e in diff_pairs:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
69 dst = os.path.join("test-data", diff_pairs[e])
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
70 if os.path.exists(dst):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
71 os.unlink(dst)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
72 sys.stderr.write(f"symlink {e} {dst}\n")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
73 os.symlink(e, dst)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
74 cmd[i] = diff_pairs[e]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
75 return shlex.join(cmd)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
76
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
77
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
78 def get_ini(line: str, tool_id: str) -> Tuple[str, str]:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
79 """
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
80 if there is an ini file then we use this to generate the test
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
81 otherwise the ctd file is used
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
82 other command line parameters are inserted later into this xml
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
83 """
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
84 cmd = shlex.split(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
85 ini = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
86 for i, e in enumerate(cmd):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
87 if e == "-ini":
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
88 ini = cmd[i + 1]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
89 cmd = cmd[:i] + cmd[i + 2:]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
90 if ini:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
91 return os.path.join("test-data", ini), shlex.join(cmd)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
92 else:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
93 return os.path.join("ctd", f"{tool_id}.ctd"), line
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
94
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
95
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
96 def unique_files(line: str):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
97 """
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
98 some tests use the same file twice which does not work in planemo tests
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
99 hence we create symlinks for each file used twice
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
100 """
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
101 cmd = shlex.split(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
102 # print(f"{cmd}")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
103 files = {}
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
104 # determine the list of indexes where each file argument (anything appearing in test-data/) appears
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
105 for idx, e in enumerate(cmd):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
106 p = os.path.join("test-data", e)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
107 if not os.path.exists(p) and not os.path.islink(p):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
108 continue
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
109 try:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
110 files[e].append(idx)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
111 except KeyError:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
112 files[e] = [idx]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
113 # print(f"{files=}")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
114 for f in files:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
115 if len(files[f]) < 2:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
116 continue
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
117 for i, idx in enumerate(files[f]):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
118 f_parts = f.split(".")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
119 f_parts[0] = f"{f_parts[0]}_{i}"
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
120 new_f = ".".join(f_parts)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
121 # if os.path.exists(os.path.join("test-data", new_f)):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
122 # os.unlink(os.path.join("test-data", new_f))
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
123 sys.stderr.write(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
124 f'\tsymlink {os.path.join("test-data", new_f)} {f}\n'
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
125 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
126 try:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
127 os.symlink(f, os.path.join("test-data", new_f))
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
128 except FileExistsError:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
129 pass
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
130 cmd[idx] = new_f
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
131 return shlex.join(cmd)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
132
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
133
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
134 def fill_ctd_clargs(ini: str, line: str, ctd_tmp: TextIO) -> None:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
135 cmd = shlex.split(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
136
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
137 # load CTDModel
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
138 ini_model = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
139 try:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
140 ini_model = CTDModel(from_file=ini)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
141 except ModelTypeError:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
142 pass
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
143 try:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
144 ini_model = Parameters(from_file=ini)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
145 except ModelTypeError:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
146 pass
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
147 assert ini_model is not None, "Could not parse %s, seems to be no CTD/PARAMS" % (
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
148 args.ini_file
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
149 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
150
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
151 # get a dictionary of the ctd arguments where the values of the parameters
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
152 # given on the command line are overwritten
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
153 ini_values = ini_model.parse_cl_args(cl_args=cmd, ignore_required=True)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
154 ini_model.write_ctd(ctd_tmp, ini_values)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
155
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
156
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
157 def process_test_line(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
158 id: str,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
159 line: str,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
160 failing_tests: List[str],
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
161 skip_list: List[str],
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
162 diff_pairs: Dict[str, str],
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
163 ) -> Optional[str]:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
164
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
165 re_test_id = re.compile(r"add_test\(\"([^\"]+)\" ([^ ]+) (.*)")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
166 re_id_out_test = re.compile(r"_out_?[0-9]?")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
167
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
168 # TODO auto extract from set(OLD_OSW_PARAM ... lin
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
169 line = line.replace(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
170 "${OLD_OSW_PARAM}",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
171 " -test -mz_extraction_window 0.05 -mz_extraction_window_unit Th -ms1_isotopes 0 -Scoring:TransitionGroupPicker:compute_peak_quality -Scoring:Scores:use_ms1_mi false -Scoring:Scores:use_mi_score false",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
172 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
173
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
174 line = line.replace("${TOPP_BIN_PATH}/", "")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
175 line = line.replace("${DATA_DIR_TOPP}/", "")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
176 line = line.replace("THIRDPARTY/", "")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
177 line = line.replace("${DATA_DIR_SHARE}/", "")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
178 # IDRipper PATH gets empty causing problems. TODO But overall the option needs to be handled differently
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
179 line = line.replace("${TMP_RIP_PATH}/", "")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
180 # some input files are originally in a subdir (degenerated cases/), but not in test-data
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
181 line = line.replace("degenerate_cases/", "")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
182 # determine the test and tool ids and remove the 1) add_test("TESTID" 2) trailing )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
183 match = re_test_id.match(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
184 if not match:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
185 sys.exit(f"Ill formated test line {line}\n")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
186 test_id = match.group(1)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
187 tool_id = match.group(2)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
188
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
189 line = f"{match.group(2)} {match.group(3)}"
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
190
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
191 if test_id in failing_tests:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
192 sys.stderr.write(f" skip failing {test_id} {line}\n")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
193 return
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
194
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
195 if id != tool_id:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
196 sys.stderr.write(f" skip {test_id} ({id} != {tool_id}) {line}\n")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
197 return
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
198
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
199 if re_id_out_test.search(test_id):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
200 sys.stderr.write(f" skip {test_id} {line}\n")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
201 return
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
202
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
203 for skip in skip_list:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
204 if re.search(skip, line):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
205 return
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
206 if re.search(skip, test_id):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
207 return
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
208
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
209 line = fix_tmp_files(line, diff_pairs)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
210 # print(f"fix {line=}")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
211 line = unique_files(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
212 # print(f"unq {line=}")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
213 ini, line = get_ini(line, tool_id)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
214
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
215 from dataclasses import dataclass, field
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
216
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
217 @dataclass
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
218 class CTDConverterArgs:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
219 input_files: list
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
220 output_destination: str
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
221 default_executable_path: Optional[str] = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
222 hardcoded_parameters: Optional[str] = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
223 parameter_hardcoder: Optional[ParameterHardcoder] = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
224 xsd_location: Optional[str] = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
225 formats_file: Optional[str] = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
226 add_to_command_line: str = ""
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
227 required_tools_file: Optional[str] = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
228 skip_tools_file: Optional[str] = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
229 macros_files: Optional[List[str]] = field(default_factory=list)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
230 test_macros_files: Optional[List[str]] = field(default_factory=list)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
231 test_macros_prefix: Optional[List[str]] = field(default_factory=list)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
232 test_test: bool = False
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
233 test_only: bool = False
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
234 test_unsniffable: Optional[List[str]] = field(default_factory=list)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
235 test_condition: Optional[List[str]] = ("compare=sim_size", "delta_frac=0.05")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
236 tool_version: str = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
237 tool_profile: str = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
238 bump_file: str = None
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
239
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
240 # create an ini/ctd file where the values are equal to the arguments from the command line
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
241 # and transform it to xml
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
242 test = [f"<!-- {test_id} -->\n"]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
243 with tempfile.NamedTemporaryFile(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
244 mode="w+", delete_on_close=False
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
245 ) as ctd_tmp, tempfile.NamedTemporaryFile(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
246 mode="w+", delete_on_close=False
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
247 ) as xml_tmp:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
248 fill_ctd_clargs(ini, line, ctd_tmp)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
249 ctd_tmp.close()
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
250 xml_tmp.close()
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
251 parsed_ctd = parse_input_ctds(None, [ctd_tmp.name], xml_tmp.name, "xml")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
252 ctd_args = CTDConverterArgs(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
253 input_files=[ctd_tmp.name],
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
254 output_destination=xml_tmp.name,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
255 macros_files=["macros.xml"],
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
256 skip_tools_file="aux/tools_blacklist.txt",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
257 formats_file="aux/filetypes.txt",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
258 # tool_conf_destination = "tool.conf",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
259 hardcoded_parameters="aux/hardcoded_params.json",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
260 tool_version="3.1",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
261 test_only=True,
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
262 test_unsniffable=[
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
263 "csv",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
264 "tsv",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
265 "txt",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
266 "dta",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
267 "dta2d",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
268 "edta",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
269 "mrm",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
270 "splib",
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
271 ],
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
272 test_condition=["compare=sim_size", "delta_frac=0.7"],
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
273 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
274 ctd_args.parameter_hardcoder = parse_hardcoded_parameters(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
275 ctd_args.hardcoded_parameters
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
276 )
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
277 convert_models(ctd_args, parsed_ctd)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
278 xml_tmp = open(xml_tmp.name, "r")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
279 for l in xml_tmp:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
280 test.append(l)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
281
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
282 return "".join(test)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
283
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
284
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
285 parser = argparse.ArgumentParser(description="Create Galaxy tests for a OpenMS tools")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
286 parser.add_argument("--id", dest="id", help="tool id")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
287 parser.add_argument("--cmake", nargs="+", help="OpenMS test CMake files")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
288 args = parser.parse_args()
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
289 sys.stderr.write(f"generate tests for {args.id}\n")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
290
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
291 re_comment = re.compile("#.*")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
292 re_empty_prefix = re.compile(r"^\s*")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
293 re_empty_suffix = re.compile(r"\s*$")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
294 re_add_test = re.compile(r"add_test\(\"(TOPP|UTILS)_.*/" + args.id)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
295 re_diff = re.compile(r"\$\{DIFF\}.* -in1 ([^ ]+) -in2 ([^ ]+)")
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
296 failing_tests = get_failing_tests(args.cmake)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
297 tests = []
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
298
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
299 # process the given CMake files and compile lists of
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
300 # - test lines .. essentially add_test(...)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
301 # - and pairs of files that are diffed
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
302 jline = ""
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
303 test_lines = []
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
304 diff_pairs = {}
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
305 for cmake in args.cmake:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
306 with open(cmake) as cmake_fh:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
307 for line in cmake_fh:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
308 # remove comments, empty prefixes and suffixes
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
309 line = re_comment.sub("", line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
310 line = re_empty_prefix.sub("", line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
311 line = re_empty_suffix.sub("", line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
312 # skip empty lines
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
313 if line == "":
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
314 continue
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
315
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
316 # join test statements that are split over multiple lines
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
317 if line.endswith(")"):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
318 jline += " " + line[:-1]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
319 else:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
320 jline = line
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
321 continue
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
322 line, jline = jline.strip(), ""
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
323 match = re_diff.search(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
324 if match:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
325 in1 = match.group(1).split("/")[-1]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
326 in2 = match.group(2).split("/")[-1]
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
327 if in1 != in2:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
328 diff_pairs[in1] = in2
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
329 elif re_add_test.match(line):
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
330 test_lines.append(line)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
331
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
332 for line in test_lines:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
333 test = process_test_line(args.id, line, failing_tests, SKIP_LIST, diff_pairs)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
334 if test:
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
335 tests.append(test)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
336
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
337 tests = "\n".join(tests)
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
338 print(
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
339 f"""
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
340 <xml name="autotest_{args.id}">
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
341 {tests}
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
342 </xml>
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
343 """
74d39f98b0c4 planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
344 )