annotate get_tests.py @ 14:30f67afbf5be 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:32:32 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
2
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
3 import argparse
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
4 import os.path
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
5 import re
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
6 import shlex
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
7 import sys
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
8 import tempfile
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
9 from typing import (
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
10 Dict,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
11 List,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
12 Optional,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
13 TextIO,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
14 Tuple,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
15 )
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
16
30f67afbf5be 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 (
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
18 ParameterHardcoder,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
19 parse_hardcoded_parameters,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
20 parse_input_ctds,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
21 )
30f67afbf5be 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
30f67afbf5be 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 (
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
24 CTDModel,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
25 ModelTypeError,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
26 Parameters,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
27 )
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
28
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
29 SKIP_LIST = [
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
30 r"_prepare\"",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
31 r"_convert",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
32 r"WRITEINI",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
33 r"WRITECTD",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
34 r"INVALIDVALUE",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
35 r"\.ini\.json",
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be 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)
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
42 ]
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
43
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
44
30f67afbf5be 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]:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
46 failing_tests = []
30f67afbf5be 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\)")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
48
30f67afbf5be 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:
30f67afbf5be 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:
30f67afbf5be 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:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
53 if match:
30f67afbf5be 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))
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
55 return failing_tests
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
56
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
57
30f67afbf5be 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:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
59 """
30f67afbf5be 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.
30f67afbf5be 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.
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be 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.
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
65 """
30f67afbf5be 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)
30f67afbf5be 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):
30f67afbf5be 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:
30f67afbf5be 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])
30f67afbf5be 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):
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
71 os.unlink(dst)
30f67afbf5be 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")
30f67afbf5be 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)
30f67afbf5be 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]
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
76
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
77
30f67afbf5be 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]:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
79 """
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
83 """
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
85 ini = None
30f67afbf5be 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):
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
87 if e == "-ini":
30f67afbf5be 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]
30f67afbf5be 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:]
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
90 if ini:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
92 else:
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
94
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
95
30f67afbf5be 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):
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
97 """
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
100 """
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
102 # print(f"{cmd}")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
103 files = {}
30f67afbf5be 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
30f67afbf5be 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):
30f67afbf5be 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)
30f67afbf5be 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):
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
108 continue
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
109 try:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
111 except KeyError:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
112 files[e] = [idx]
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
113 # print(f"{files=}")
30f67afbf5be 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:
30f67afbf5be 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:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
116 continue
30f67afbf5be 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]):
30f67afbf5be 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(".")
30f67afbf5be 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}"
30f67afbf5be 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)
30f67afbf5be 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)):
30f67afbf5be 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))
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
123 sys.stderr.write(
30f67afbf5be 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'
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
125 )
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
126 try:
30f67afbf5be 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))
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
128 except FileExistsError:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
129 pass
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
132
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
133
30f67afbf5be 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:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
136
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
137 # load CTDModel
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
138 ini_model = None
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
139 try:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
141 except ModelTypeError:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
142 pass
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
143 try:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
145 except ModelTypeError:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
146 pass
30f67afbf5be 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" % (
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
148 args.ini_file
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
149 )
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
150
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
155
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
156
30f67afbf5be 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(
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
158 id: str,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
159 line: str,
30f67afbf5be 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],
30f67afbf5be 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],
30f67afbf5be 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],
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
163 ) -> Optional[str]:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
164
30f67afbf5be 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\(\"([^\"]+)\" ([^ ]+) (.*)")
30f67afbf5be 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]?")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
167
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
169 line = line.replace(
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
170 "${OLD_OSW_PARAM}",
30f67afbf5be 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",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
172 )
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
173
30f67afbf5be 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}/", "")
30f67afbf5be 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}/", "")
30f67afbf5be 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/", "")
30f67afbf5be 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}/", "")
30f67afbf5be 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
30f67afbf5be 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}/", "")
30f67afbf5be 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
30f67afbf5be 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/", "")
30f67afbf5be 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 )
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
184 if not match:
30f67afbf5be 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")
30f67afbf5be 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)
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
188
30f67afbf5be 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)}"
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
190
30f67afbf5be 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:
30f67afbf5be 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")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
193 return
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
194
30f67afbf5be 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:
30f67afbf5be 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")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
197 return
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
198
30f67afbf5be 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):
30f67afbf5be 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")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
201 return
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
202
30f67afbf5be 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:
30f67afbf5be 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):
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
205 return
30f67afbf5be 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):
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
207 return
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
208
30f67afbf5be 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)
30f67afbf5be 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=}")
30f67afbf5be 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)
30f67afbf5be 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=}")
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
214
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
216
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
217 @dataclass
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
218 class CTDConverterArgs:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
219 input_files: list
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
220 output_destination: str
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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 = ""
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be 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)
30f67afbf5be 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)
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be 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")
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
239
30f67afbf5be 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
30f67afbf5be 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
30f67afbf5be 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"]
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
243 with tempfile.NamedTemporaryFile(
30f67afbf5be 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
30f67afbf5be 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(
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
247 ) as xml_tmp:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
249 ctd_tmp.close()
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
250 xml_tmp.close()
30f67afbf5be 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")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
252 ctd_args = CTDConverterArgs(
30f67afbf5be 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],
30f67afbf5be 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,
30f67afbf5be 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"],
30f67afbf5be 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",
30f67afbf5be 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",
30f67afbf5be 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",
30f67afbf5be 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",
30f67afbf5be 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",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
261 test_only=True,
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
262 test_unsniffable=[
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
263 "csv",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
264 "tsv",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
265 "txt",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
266 "dta",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
267 "dta2d",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
268 "edta",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
269 "mrm",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
270 "splib",
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
271 ],
30f67afbf5be 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"],
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
273 )
30f67afbf5be 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(
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
276 )
30f67afbf5be 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)
30f67afbf5be 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")
30f67afbf5be 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:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
280 test.append(l)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
281
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
282 return "".join(test)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
283
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
284
30f67afbf5be 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")
30f67afbf5be 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")
30f67afbf5be 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")
30f67afbf5be 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()
30f67afbf5be 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")
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
290
30f67afbf5be 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("#.*")
30f67afbf5be 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*")
30f67afbf5be 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*$")
30f67afbf5be 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)
30f67afbf5be 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 ([^ ]+)")
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
297 tests = []
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
298
30f67afbf5be 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
30f67afbf5be 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(...)
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
302 jline = ""
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
303 test_lines = []
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
304 diff_pairs = {}
30f67afbf5be 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:
30f67afbf5be 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:
30f67afbf5be 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:
30f67afbf5be 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
30f67afbf5be 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)
30f67afbf5be 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)
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
312 # skip empty lines
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
313 if line == "":
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
314 continue
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
315
30f67afbf5be 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
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
317 if line.endswith(")"):
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
318 jline += " " + line[:-1]
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
319 else:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
320 jline = line
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
321 continue
30f67afbf5be 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(), ""
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
324 if match:
30f67afbf5be 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]
30f67afbf5be 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]
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
327 if in1 != in2:
30f67afbf5be 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
30f67afbf5be 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):
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
331
30f67afbf5be 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:
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
334 if test:
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
335 tests.append(test)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
336
30f67afbf5be 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)
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
338 print(
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
339 f"""
30f67afbf5be 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}">
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
341 {tests}
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
342 </xml>
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
343 """
30f67afbf5be planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
galaxyp
parents:
diff changeset
344 )