Skip to content

Commit 36e53d5

Browse files
fixup: for batch mode
test data generation needs to remove whens and set the select parameter
1 parent 98e9eb5 commit 36e53d5

File tree

4 files changed

+56
-189
lines changed

4 files changed

+56
-189
lines changed

ctdconverter/galaxy/converter.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import logging
55
import os
66
import os.path
7+
import random
78
import re
89
import sys
910
from collections import OrderedDict
@@ -51,6 +52,7 @@
5152

5253
REQUIRED_MACROS = [REQUIREMENTS_MACRO_NAME, STDIO_MACRO_NAME, ADVANCED_OPTIONS_NAME + "_macro"]
5354

55+
random.seed(42)
5456

5557
class ExitCode:
5658
def __init__(self, code_range="", level="", description=None):
@@ -1749,14 +1751,29 @@ def create_tests(parent, inputs=None, outputs=None):
17491751
for a in attrib:
17501752
del node.attrib[a]
17511753
node.attrib[a] = attrib[a]
1754+
# this should be batch mode conditionals
1755+
# select yes/no at random
1756+
if node.tag == "conditional":
1757+
select = node.find("./param")
1758+
options = [x.attrib["value"] for x in select.findall("./option")]
1759+
option = random.choice(options)
1760+
select.attrib["value"] = option
1761+
for when in node.findall(".//when"):
1762+
when.tag = "delete_node"
1763+
if when.attrib["value"] != option:
1764+
continue
1765+
for p in when:
1766+
node.append(p)
1767+
17521768
if node.tag == "expand" and node.attrib["macro"] == ADVANCED_OPTIONS_NAME + "_macro":
17531769
node.tag = "section"
17541770
node.attrib["name"] = ADVANCED_OPTIONS_NAME
17551771
if "type" not in node.attrib:
17561772
continue
17571773

1758-
if (node.attrib["type"] == "select" and "true" in {_.attrib.get("selected", "false") for _ in node}) or\
1759-
(node.attrib["type"] == "select" and node.attrib.get("value", "") != ""):
1774+
if node.attrib["type"] == "select" and node.getparent().tag != "conditional" and\
1775+
(("true" in {_.attrib.get("selected", "false") for _ in node}) or
1776+
(node.attrib.get("value", "") != "")):
17601777
node.tag = "delete_node"
17611778
continue
17621779

@@ -1777,7 +1794,9 @@ def create_tests(parent, inputs=None, outputs=None):
17771794
elif node.attrib["type"] == "float" and node.attrib["value"] == "":
17781795
node.attrib["value"] = "1.0"
17791796
elif node.attrib["type"] == "select":
1780-
if node.attrib.get("display", None) == "radio" or node.attrib.get("multiple", "false") == "false":
1797+
if node.getparent().tag == "conditional": # set batch mode conditional select, this is done elsewhere
1798+
pass
1799+
elif node.attrib.get("display", None) == "radio" or node.attrib.get("multiple", "false") == "false":
17811800
node.attrib["value"] = node[0].attrib["value"]
17821801
elif node.attrib.get("multiple", None) == "true":
17831802
node.attrib["value"] = ",".join([_.attrib["value"] for _ in node if "value" in _.attrib])

tests/test-data/ifile.xml

Lines changed: 30 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -1787,303 +1787,171 @@ ${' '.join(["'test_section.sect_list_mandatory_multformat_cond.sect_list_mandato
17871787
<param name="mandatory_multformat" ftype="tabular" value="2test.ext"/>
17881788
<conditional name="list_mandatory_noformat_cond">
17891789
<param name="list_mandatory_noformat_select" value="no"/>
1790-
<when value="no">
1791-
<param name="list_mandatory_noformat" ftype="txt" value="3test.ext,3test2.ext"/>
1792-
</when>
1793-
<when value="yes">
1794-
<param name="list_mandatory_noformat" ftype="txt" value="4test.ext"/>
1795-
</when>
1790+
<param name="list_mandatory_noformat" ftype="txt" value="4test.ext,4test2.ext"/>
17961791
</conditional>
17971792
<conditional name="list_optional_noformat_cond">
17981793
<param name="list_optional_noformat_select" value="no"/>
1799-
<when value="no"/>
1800-
<when value="yes"/>
18011794
</conditional>
18021795
<conditional name="list_mandatory_oneformat_cond">
1803-
<param name="list_mandatory_oneformat_select" value="no"/>
1804-
<when value="no">
1805-
<param name="list_mandatory_oneformat" ftype="tsv" value="5test.ext,5test2.ext"/>
1806-
</when>
1807-
<when value="yes">
1808-
<param name="list_mandatory_oneformat" ftype="tsv" value="6test.ext"/>
1809-
</when>
1796+
<param name="list_mandatory_oneformat_select" value="yes"/>
1797+
<param name="list_mandatory_oneformat" ftype="tsv" value="6test.ext"/>
18101798
</conditional>
18111799
<conditional name="list_optional_oneformat_cond">
18121800
<param name="list_optional_oneformat_select" value="no"/>
1813-
<when value="no"/>
1814-
<when value="yes"/>
18151801
</conditional>
18161802
<conditional name="list_mandatory_multformat_cond">
18171803
<param name="list_mandatory_multformat_select" value="no"/>
1818-
<when value="no">
1819-
<param name="list_mandatory_multformat" ftype="tabular" value="7test.ext,7test2.ext"/>
1820-
</when>
1821-
<when value="yes">
1822-
<param name="list_mandatory_multformat" ftype="tabular" value="8test.ext"/>
1823-
</when>
1804+
<param name="list_mandatory_multformat" ftype="tabular" value="8test.ext,8test2.ext"/>
18241805
</conditional>
18251806
<conditional name="list_optional_multformat_cond">
18261807
<param name="list_optional_multformat_select" value="no"/>
1827-
<when value="no"/>
1828-
<when value="yes"/>
18291808
</conditional>
18301809
<conditional name="list_default_mandatory_noformat_cond">
18311810
<param name="list_default_mandatory_noformat_select" value="no"/>
1832-
<when value="no"/>
1833-
<when value="yes"/>
18341811
</conditional>
18351812
<conditional name="list_default_optional_noformat_cond">
18361813
<param name="list_default_optional_noformat_select" value="no"/>
1837-
<when value="no"/>
1838-
<when value="yes"/>
18391814
</conditional>
18401815
<conditional name="list_default_mandatory_oneformat_cond">
1841-
<param name="list_default_mandatory_oneformat_select" value="no"/>
1842-
<when value="no"/>
1843-
<when value="yes"/>
1816+
<param name="list_default_mandatory_oneformat_select" value="yes"/>
18441817
</conditional>
18451818
<conditional name="list_default_optional_oneformat_cond">
18461819
<param name="list_default_optional_oneformat_select" value="no"/>
1847-
<when value="no"/>
1848-
<when value="yes"/>
18491820
</conditional>
18501821
<conditional name="list_default_mandatory_multformat_cond">
18511822
<param name="list_default_mandatory_multformat_select" value="no"/>
1852-
<when value="no"/>
1853-
<when value="yes"/>
18541823
</conditional>
18551824
<conditional name="list_default_optional_multformat_cond">
18561825
<param name="list_default_optional_multformat_select" value="no"/>
1857-
<when value="no"/>
1858-
<when value="yes"/>
18591826
</conditional>
18601827
<section name="test_section">
18611828
<param name="sect_mandatory_noformat" ftype="txt" value="9test.ext"/>
18621829
<param name="sect_mandatory_oneformat" ftype="tsv" value="10test.ext"/>
18631830
<param name="sect_mandatory_multformat" ftype="tabular" value="11test.ext"/>
18641831
<conditional name="sect_list_mandatory_noformat_cond">
18651832
<param name="sect_list_mandatory_noformat_select" value="no"/>
1866-
<when value="no">
1867-
<param name="sect_list_mandatory_noformat" ftype="txt" value="12test.ext,12test2.ext"/>
1868-
</when>
1869-
<when value="yes">
1870-
<param name="sect_list_mandatory_noformat" ftype="txt" value="13test.ext"/>
1871-
</when>
1833+
<param name="sect_list_mandatory_noformat" ftype="txt" value="13test.ext,13test2.ext"/>
18721834
</conditional>
18731835
<conditional name="sect_list_optional_noformat_cond">
18741836
<param name="sect_list_optional_noformat_select" value="no"/>
1875-
<when value="no"/>
1876-
<when value="yes"/>
18771837
</conditional>
18781838
<conditional name="sect_list_mandatory_oneformat_cond">
18791839
<param name="sect_list_mandatory_oneformat_select" value="no"/>
1880-
<when value="no">
1881-
<param name="sect_list_mandatory_oneformat" ftype="tsv" value="14test.ext,14test2.ext"/>
1882-
</when>
1883-
<when value="yes">
1884-
<param name="sect_list_mandatory_oneformat" ftype="tsv" value="15test.ext"/>
1885-
</when>
1840+
<param name="sect_list_mandatory_oneformat" ftype="tsv" value="15test.ext,15test2.ext"/>
18861841
</conditional>
18871842
<conditional name="sect_list_optional_oneformat_cond">
18881843
<param name="sect_list_optional_oneformat_select" value="no"/>
1889-
<when value="no"/>
1890-
<when value="yes"/>
18911844
</conditional>
18921845
<conditional name="sect_list_mandatory_multformat_cond">
1893-
<param name="sect_list_mandatory_multformat_select" value="no"/>
1894-
<when value="no">
1895-
<param name="sect_list_mandatory_multformat" ftype="tabular" value="16test.ext,16test2.ext"/>
1896-
</when>
1897-
<when value="yes">
1898-
<param name="sect_list_mandatory_multformat" ftype="tabular" value="17test.ext"/>
1899-
</when>
1846+
<param name="sect_list_mandatory_multformat_select" value="yes"/>
1847+
<param name="sect_list_mandatory_multformat" ftype="tabular" value="17test.ext"/>
19001848
</conditional>
19011849
<conditional name="sect_list_optional_multformat_cond">
19021850
<param name="sect_list_optional_multformat_select" value="no"/>
1903-
<when value="no"/>
1904-
<when value="yes"/>
19051851
</conditional>
19061852
<conditional name="sect_list_default_mandatory_noformat_cond">
1907-
<param name="sect_list_default_mandatory_noformat_select" value="no"/>
1908-
<when value="no"/>
1909-
<when value="yes"/>
1853+
<param name="sect_list_default_mandatory_noformat_select" value="yes"/>
19101854
</conditional>
19111855
<conditional name="sect_list_default_optional_noformat_cond">
1912-
<param name="sect_list_default_optional_noformat_select" value="no"/>
1913-
<when value="no"/>
1914-
<when value="yes"/>
1856+
<param name="sect_list_default_optional_noformat_select" value="yes"/>
19151857
</conditional>
19161858
<conditional name="sect_list_default_mandatory_oneformat_cond">
19171859
<param name="sect_list_default_mandatory_oneformat_select" value="no"/>
1918-
<when value="no"/>
1919-
<when value="yes"/>
19201860
</conditional>
19211861
<conditional name="sect_list_default_optional_oneformat_cond">
19221862
<param name="sect_list_default_optional_oneformat_select" value="no"/>
1923-
<when value="no"/>
1924-
<when value="yes"/>
19251863
</conditional>
19261864
<conditional name="sect_list_default_mandatory_multformat_cond">
1927-
<param name="sect_list_default_mandatory_multformat_select" value="no"/>
1928-
<when value="no"/>
1929-
<when value="yes"/>
1865+
<param name="sect_list_default_mandatory_multformat_select" value="yes"/>
19301866
</conditional>
19311867
<conditional name="sect_list_default_optional_multformat_cond">
1932-
<param name="sect_list_default_optional_multformat_select" value="no"/>
1933-
<when value="no"/>
1934-
<when value="yes"/>
1868+
<param name="sect_list_default_optional_multformat_select" value="yes"/>
19351869
</conditional>
19361870
<param name="sect_mandatory_noformat_adv" ftype="txt" value="18test.ext"/>
19371871
<param name="sect_mandatory_oneformat_adv" ftype="tsv" value="19test.ext"/>
19381872
<param name="sect_mandatory_multformat_adv" ftype="tabular" value="20test.ext"/>
19391873
<conditional name="sect_list_mandatory_noformat_adv_cond">
1940-
<param name="sect_list_mandatory_noformat_adv_select" value="no"/>
1941-
<when value="no">
1942-
<param name="sect_list_mandatory_noformat_adv" ftype="txt" value="21test.ext,21test2.ext"/>
1943-
</when>
1944-
<when value="yes">
1945-
<param name="sect_list_mandatory_noformat_adv" ftype="txt" value="22test.ext"/>
1946-
</when>
1874+
<param name="sect_list_mandatory_noformat_adv_select" value="yes"/>
1875+
<param name="sect_list_mandatory_noformat_adv" ftype="txt" value="22test.ext"/>
19471876
</conditional>
19481877
<conditional name="sect_list_optional_noformat_adv_cond">
19491878
<param name="sect_list_optional_noformat_adv_select" value="no"/>
1950-
<when value="no"/>
1951-
<when value="yes"/>
19521879
</conditional>
19531880
<conditional name="sect_list_mandatory_oneformat_adv_cond">
19541881
<param name="sect_list_mandatory_oneformat_adv_select" value="no"/>
1955-
<when value="no">
1956-
<param name="sect_list_mandatory_oneformat_adv" ftype="tsv" value="23test.ext,23test2.ext"/>
1957-
</when>
1958-
<when value="yes">
1959-
<param name="sect_list_mandatory_oneformat_adv" ftype="tsv" value="24test.ext"/>
1960-
</when>
1882+
<param name="sect_list_mandatory_oneformat_adv" ftype="tsv" value="24test.ext,24test2.ext"/>
19611883
</conditional>
19621884
<conditional name="sect_list_optional_oneformat_adv_cond">
1963-
<param name="sect_list_optional_oneformat_adv_select" value="no"/>
1964-
<when value="no"/>
1965-
<when value="yes"/>
1885+
<param name="sect_list_optional_oneformat_adv_select" value="yes"/>
19661886
</conditional>
19671887
<conditional name="sect_list_mandatory_multformat_adv_cond">
19681888
<param name="sect_list_mandatory_multformat_adv_select" value="no"/>
1969-
<when value="no">
1970-
<param name="sect_list_mandatory_multformat_adv" ftype="tabular" value="25test.ext,25test2.ext"/>
1971-
</when>
1972-
<when value="yes">
1973-
<param name="sect_list_mandatory_multformat_adv" ftype="tabular" value="26test.ext"/>
1974-
</when>
1889+
<param name="sect_list_mandatory_multformat_adv" ftype="tabular" value="26test.ext,26test2.ext"/>
19751890
</conditional>
19761891
<conditional name="sect_list_optional_multformat_adv_cond">
19771892
<param name="sect_list_optional_multformat_adv_select" value="no"/>
1978-
<when value="no"/>
1979-
<when value="yes"/>
19801893
</conditional>
19811894
<conditional name="sect_list_default_mandatory_noformat_adv_cond">
1982-
<param name="sect_list_default_mandatory_noformat_adv_select" value="no"/>
1983-
<when value="no"/>
1984-
<when value="yes"/>
1895+
<param name="sect_list_default_mandatory_noformat_adv_select" value="yes"/>
19851896
</conditional>
19861897
<conditional name="sect_list_default_optional_noformat_adv_cond">
19871898
<param name="sect_list_default_optional_noformat_adv_select" value="no"/>
1988-
<when value="no"/>
1989-
<when value="yes"/>
19901899
</conditional>
19911900
<conditional name="sect_list_default_mandatory_oneformat_adv_cond">
1992-
<param name="sect_list_default_mandatory_oneformat_adv_select" value="no"/>
1993-
<when value="no"/>
1994-
<when value="yes"/>
1901+
<param name="sect_list_default_mandatory_oneformat_adv_select" value="yes"/>
19951902
</conditional>
19961903
<conditional name="sect_list_default_optional_oneformat_adv_cond">
1997-
<param name="sect_list_default_optional_oneformat_adv_select" value="no"/>
1998-
<when value="no"/>
1999-
<when value="yes"/>
1904+
<param name="sect_list_default_optional_oneformat_adv_select" value="yes"/>
20001905
</conditional>
20011906
<conditional name="sect_list_default_mandatory_multformat_adv_cond">
2002-
<param name="sect_list_default_mandatory_multformat_adv_select" value="no"/>
2003-
<when value="no"/>
2004-
<when value="yes"/>
1907+
<param name="sect_list_default_mandatory_multformat_adv_select" value="yes"/>
20051908
</conditional>
20061909
<conditional name="sect_list_default_optional_multformat_adv_cond">
20071910
<param name="sect_list_default_optional_multformat_adv_select" value="no"/>
2008-
<when value="no"/>
2009-
<when value="yes"/>
20101911
</conditional>
20111912
</section>
20121913
<section name="adv_opts">
20131914
<param name="mandatory_noformat_adv" ftype="txt" value="27test.ext"/>
20141915
<param name="mandatory_oneformat_adv" ftype="tsv" value="28test.ext"/>
20151916
<param name="mandatory_multformat_adv" ftype="tabular" value="29test.ext"/>
20161917
<conditional name="list_mandatory_noformat_adv_cond">
2017-
<param name="list_mandatory_noformat_adv_select" value="no"/>
2018-
<when value="no">
2019-
<param name="list_mandatory_noformat_adv" ftype="txt" value="30test.ext,30test2.ext"/>
2020-
</when>
2021-
<when value="yes">
2022-
<param name="list_mandatory_noformat_adv" ftype="txt" value="31test.ext"/>
2023-
</when>
1918+
<param name="list_mandatory_noformat_adv_select" value="yes"/>
1919+
<param name="list_mandatory_noformat_adv" ftype="txt" value="31test.ext"/>
20241920
</conditional>
20251921
<conditional name="list_optional_noformat_adv_cond">
20261922
<param name="list_optional_noformat_adv_select" value="no"/>
2027-
<when value="no"/>
2028-
<when value="yes"/>
20291923
</conditional>
20301924
<conditional name="list_mandatory_oneformat_adv_cond">
2031-
<param name="list_mandatory_oneformat_adv_select" value="no"/>
2032-
<when value="no">
2033-
<param name="list_mandatory_oneformat_adv" ftype="tsv" value="32test.ext,32test2.ext"/>
2034-
</when>
2035-
<when value="yes">
2036-
<param name="list_mandatory_oneformat_adv" ftype="tsv" value="33test.ext"/>
2037-
</when>
1925+
<param name="list_mandatory_oneformat_adv_select" value="yes"/>
1926+
<param name="list_mandatory_oneformat_adv" ftype="tsv" value="33test.ext"/>
20381927
</conditional>
20391928
<conditional name="list_optional_oneformat_adv_cond">
20401929
<param name="list_optional_oneformat_adv_select" value="no"/>
2041-
<when value="no"/>
2042-
<when value="yes"/>
20431930
</conditional>
20441931
<conditional name="list_mandatory_multformat_adv_cond">
2045-
<param name="list_mandatory_multformat_adv_select" value="no"/>
2046-
<when value="no">
2047-
<param name="list_mandatory_multformat_adv" ftype="tabular" value="34test.ext,34test2.ext"/>
2048-
</when>
2049-
<when value="yes">
2050-
<param name="list_mandatory_multformat_adv" ftype="tabular" value="35test.ext"/>
2051-
</when>
1932+
<param name="list_mandatory_multformat_adv_select" value="yes"/>
1933+
<param name="list_mandatory_multformat_adv" ftype="tabular" value="35test.ext"/>
20521934
</conditional>
20531935
<conditional name="list_optional_multformat_adv_cond">
2054-
<param name="list_optional_multformat_adv_select" value="no"/>
2055-
<when value="no"/>
2056-
<when value="yes"/>
1936+
<param name="list_optional_multformat_adv_select" value="yes"/>
20571937
</conditional>
20581938
<conditional name="list_default_mandatory_noformat_adv_cond">
20591939
<param name="list_default_mandatory_noformat_adv_select" value="no"/>
2060-
<when value="no"/>
2061-
<when value="yes"/>
20621940
</conditional>
20631941
<conditional name="list_default_optional_noformat_adv_cond">
20641942
<param name="list_default_optional_noformat_adv_select" value="no"/>
2065-
<when value="no"/>
2066-
<when value="yes"/>
20671943
</conditional>
20681944
<conditional name="list_default_mandatory_oneformat_adv_cond">
20691945
<param name="list_default_mandatory_oneformat_adv_select" value="no"/>
2070-
<when value="no"/>
2071-
<when value="yes"/>
20721946
</conditional>
20731947
<conditional name="list_default_optional_oneformat_adv_cond">
20741948
<param name="list_default_optional_oneformat_adv_select" value="no"/>
2075-
<when value="no"/>
2076-
<when value="yes"/>
20771949
</conditional>
20781950
<conditional name="list_default_mandatory_multformat_adv_cond">
2079-
<param name="list_default_mandatory_multformat_adv_select" value="no"/>
2080-
<when value="no"/>
2081-
<when value="yes"/>
1951+
<param name="list_default_mandatory_multformat_adv_select" value="yes"/>
20821952
</conditional>
20831953
<conditional name="list_default_optional_multformat_adv_cond">
20841954
<param name="list_default_optional_multformat_adv_select" value="no"/>
2085-
<when value="no"/>
2086-
<when value="yes"/>
20871955
</conditional>
20881956
</section>
20891957
</test>

0 commit comments

Comments
 (0)