diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..be252d41
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,42 @@
+language: python
+python:
+ - "2.7"
+
+install:
+ - sudo apt-get update
+ - if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then
+ wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh;
+ else
+ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
+ fi
+ - bash miniconda.sh -b -p $HOME/miniconda
+ - export PATH="$HOME/miniconda/bin:$PATH"
+ - hash -r
+ - conda config --set always_yes yes --set changeps1 no
+ - conda update -q conda
+ - conda info -a
+
+ - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION
+ - source activate test-environment
+ - conda config --add channels conda-forge
+ - conda config --add channels bioconda
+ - conda config --add channels anaconda
+ - conda config --add channels workflowconversion
+
+# - git clone https://github.com/WorkflowConversion/CTDopts $HOME/CTDopts
+ - git clone -b topic/empty_numeric_defaults https://github.com/bernt-matthias/CTDopts $HOME/CTDopts
+ - cd $HOME/CTDopts
+ - python setup.py install
+ - conda install -c conda-forge lxml
+ - conda install -c conda-forge ruamel.yaml
+ - conda install libxml2
+ - cd $TRAVIS_BUILD_DIR
+ - python setup.py install
+
+ - conda install coverage green codecov
+
+script:
+ - python setup.py test
+
+after_script:
+- python -m codecov
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/test-data/bool.ctd b/tests/test-data/bool.ctd
new file mode 100644
index 00000000..d59641e2
--- /dev/null
+++ b/tests/test-data/bool.ctd
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/bool.xml b/tests/test-data/bool.xml
new file mode 100644
index 00000000..30674b85
--- /dev/null
+++ b/tests/test-data/bool.xml
@@ -0,0 +1,62 @@
+
+
+
+
+ Bool parameter tests
+
+ echo BoolTest
+ macros.xml
+
+
+
+
+ echo BoolTest
+
+#if $param_true_optional_unrestricted:
+ -true_optional_unrestricted
+ #if " " in str($param_true_optional_unrestricted):
+ "$param_true_optional_unrestricted"
+ #else
+ $param_true_optional_unrestricted
+ #end if
+#end if
+#if $param_false_optional_unrestricted:
+ -false_optional_unrestricted
+#end if
+#if $adv_opts.adv_opts_selector=='advanced':
+ #if $adv_opts.param_true_optional_unrestricted_adv:
+ -true_optional_unrestricted_adv
+ #if " " in str($adv_opts.param_true_optional_unrestricted_adv):
+ "$adv_opts.param_true_optional_unrestricted_adv"
+ #else
+ $adv_opts.param_true_optional_unrestricted_adv
+ #end if
+#end if
+ #if $adv_opts.param_false_optional_unrestricted_adv:
+ -false_optional_unrestricted_adv
+#end if
+#end if
+> $param_stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bool parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/empty.ctd b/tests/test-data/empty.ctd
new file mode 100644
index 00000000..1ffc19de
--- /dev/null
+++ b/tests/test-data/empty.ctd
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/empty.xml b/tests/test-data/empty.xml
new file mode 100644
index 00000000..e7daf119
--- /dev/null
+++ b/tests/test-data/empty.xml
@@ -0,0 +1,25 @@
+
+
+
+
+ String parameter tests
+
+ echo StringTest
+ macros.xml
+
+
+
+
+ echo StringTest
+
+> $param_stdout
+
+
+
+
+
+ String parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/filetypes.txt b/tests/test-data/filetypes.txt
new file mode 100644
index 00000000..ae3d61a2
--- /dev/null
+++ b/tests/test-data/filetypes.txt
@@ -0,0 +1,4 @@
+# CTD type # Galaxy type # Long Galaxy data type # Mimetype
+ext txt galaxy.datatypes.data:Text
+eyt txt galaxy.datatypes.data:Text
+ezt txt galaxy.datatypes.data:Text
diff --git a/tests/test-data/float.ctd b/tests/test-data/float.ctd
new file mode 100644
index 00000000..af537d83
--- /dev/null
+++ b/tests/test-data/float.ctd
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/float.xml b/tests/test-data/float.xml
new file mode 100644
index 00000000..1fe902f6
--- /dev/null
+++ b/tests/test-data/float.xml
@@ -0,0 +1,158 @@
+
+
+
+
+ Floateger parameter tests
+
+ echo FloatTest
+ macros.xml
+
+
+
+
+ echo FloatTest
+
+#if str($param_param_wodefault_mandatory_unrestricted):
+ -param_wodefault_mandatory_unrestricted $param_param_wodefault_mandatory_unrestricted
+#end if
+#if str($param_param_default_mandatory_unrestricted):
+ -param_default_mandatory_unrestricted $param_param_default_mandatory_unrestricted
+#end if
+#if str($param_param_wodefault_optional_unrestricted):
+ -param_wodefault_optional_unrestricted $param_param_wodefault_optional_unrestricted
+#end if
+#if str($param_param_default_optional_unrestricted):
+ -param_default_optional_unrestricted $param_param_default_optional_unrestricted
+#end if
+#if str($param_param_wodefault_mandatory_unrestricted_min):
+ -param_wodefault_mandatory_unrestricted_min $param_param_wodefault_mandatory_unrestricted_min
+#end if
+#if str($param_param_default_mandatory_unrestricted_min):
+ -param_default_mandatory_unrestricted_min $param_param_default_mandatory_unrestricted_min
+#end if
+#if str($param_param_wodefault_optional_unrestricted_min):
+ -param_wodefault_optional_unrestricted_min $param_param_wodefault_optional_unrestricted_min
+#end if
+#if str($param_param_default_optional_unrestricted_min):
+ -param_default_optional_unrestricted_min $param_param_default_optional_unrestricted_min
+#end if
+#if str($param_param_wodefault_mandatory_unrestricted_max):
+ -param_wodefault_mandatory_unrestricted_max $param_param_wodefault_mandatory_unrestricted_max
+#end if
+#if str($param_param_default_mandatory_unrestricted_max):
+ -param_default_mandatory_unrestricted_max $param_param_default_mandatory_unrestricted_max
+#end if
+#if str($param_param_wodefault_optional_unrestricted_max):
+ -param_wodefault_optional_unrestricted_max $param_param_wodefault_optional_unrestricted_max
+#end if
+#if str($param_param_default_optional_unrestricted_max):
+ -param_default_optional_unrestricted_max $param_param_default_optional_unrestricted_max
+#end if
+#if str($param_param_wodefault_mandatory_unrestricted_minmax):
+ -param_wodefault_mandatory_unrestricted_minmax $param_param_wodefault_mandatory_unrestricted_minmax
+#end if
+#if str($param_param_default_mandatory_unrestricted_minmax):
+ -param_default_mandatory_unrestricted_minmax $param_param_default_mandatory_unrestricted_minmax
+#end if
+#if str($param_param_wodefault_optional_unrestricted_minmax):
+ -param_wodefault_optional_unrestricted_minmax $param_param_wodefault_optional_unrestricted_minmax
+#end if
+#if str($param_param_default_optional_unrestricted_minmax):
+ -param_default_optional_unrestricted_minmax $param_param_default_optional_unrestricted_minmax
+#end if
+#if $adv_opts.adv_opts_selector=='advanced':
+ #if str($adv_opts.param_param_wodefault_mandatory_unrestricted_adv):
+ -param_wodefault_mandatory_unrestricted_adv $adv_opts.param_param_wodefault_mandatory_unrestricted_adv
+#end if
+ #if str($adv_opts.param_param_default_mandatory_unrestricted_adv):
+ -param_default_mandatory_unrestricted_adv $adv_opts.param_param_default_mandatory_unrestricted_adv
+#end if
+ #if str($adv_opts.param_param_wodefault_optional_unrestricted_adv):
+ -param_wodefault_optional_unrestricted_adv $adv_opts.param_param_wodefault_optional_unrestricted_adv
+#end if
+ #if str($adv_opts.param_param_default_optional_unrestricted_adv):
+ -param_default_optional_unrestricted_adv $adv_opts.param_param_default_optional_unrestricted_adv
+#end if
+ #if str($adv_opts.param_param_wodefault_mandatory_unrestricted_adv_min):
+ -param_wodefault_mandatory_unrestricted_adv_min $adv_opts.param_param_wodefault_mandatory_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_param_default_mandatory_unrestricted_adv_min):
+ -param_default_mandatory_unrestricted_adv_min $adv_opts.param_param_default_mandatory_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_param_wodefault_optional_unrestricted_adv_min):
+ -param_wodefault_optional_unrestricted_adv_min $adv_opts.param_param_wodefault_optional_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_param_default_optional_unrestricted_adv_min):
+ -param_default_optional_unrestricted_adv_min $adv_opts.param_param_default_optional_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_param_wodefault_mandatory_unrestricted_adv_max):
+ -param_wodefault_mandatory_unrestricted_adv_max $adv_opts.param_param_wodefault_mandatory_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_param_default_mandatory_unrestricted_adv_max):
+ -param_default_mandatory_unrestricted_adv_max $adv_opts.param_param_default_mandatory_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_param_wodefault_optional_unrestricted_adv_max):
+ -param_wodefault_optional_unrestricted_adv_max $adv_opts.param_param_wodefault_optional_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_param_default_optional_unrestricted_adv_max):
+ -param_default_optional_unrestricted_adv_max $adv_opts.param_param_default_optional_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_param_wodefault_mandatory_unrestricted_adv_minmax):
+ -param_wodefault_mandatory_unrestricted_adv_minmax $adv_opts.param_param_wodefault_mandatory_unrestricted_adv_minmax
+#end if
+ #if str($adv_opts.param_param_default_mandatory_unrestricted_adv_minmax):
+ -param_default_mandatory_unrestricted_adv_minmax $adv_opts.param_param_default_mandatory_unrestricted_adv_minmax
+#end if
+ #if str($adv_opts.param_param_wodefault_optional_unrestricted_adv_minmax):
+ -param_wodefault_optional_unrestricted_adv_minmax $adv_opts.param_param_wodefault_optional_unrestricted_adv_minmax
+#end if
+ #if str($adv_opts.param_param_default_optional_unrestricted_adv_minmax):
+ -param_default_optional_unrestricted_adv_minmax $adv_opts.param_param_default_optional_unrestricted_adv_minmax
+#end if
+#end if
+> $param_stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Floateger parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/ifile.ctd b/tests/test-data/ifile.ctd
new file mode 100644
index 00000000..be957cb9
--- /dev/null
+++ b/tests/test-data/ifile.ctd
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/ifile.xml b/tests/test-data/ifile.xml
new file mode 100644
index 00000000..232b9fa0
--- /dev/null
+++ b/tests/test-data/ifile.xml
@@ -0,0 +1,270 @@
+
+
+
+
+ Input File parameter tests
+
+ echo inFileTest
+ macros.xml
+
+
+
+
+ echo inFileTest
+
+#if str($param_mandatory_noformat):
+ -mandatory_noformat $param_mandatory_noformat
+#end if
+#if str($param_optional_noformat):
+ -optional_noformat $param_optional_noformat
+#end if
+#if str($param_mandatory_oneformat):
+ -mandatory_oneformat $param_mandatory_oneformat
+#end if
+#if str($param_optional_oneformat):
+ -optional_oneformat $param_optional_oneformat
+#end if
+#if str($param_mandatory_multformat):
+ -mandatory_multformat $param_mandatory_multformat
+#end if
+#if str($param_optional_multformat):
+ -optional_multformat $param_optional_multformat
+#end if
+#if str($param_default_mandatory_noformat):
+ -default_mandatory_noformat $param_default_mandatory_noformat
+#end if
+#if str($param_default_optional_noformat):
+ -default_optional_noformat $param_default_optional_noformat
+#end if
+#if str($param_default_mandatory_oneformat):
+ -default_mandatory_oneformat $param_default_mandatory_oneformat
+#end if
+#if str($param_default_optional_oneformat):
+ -default_optional_oneformat $param_default_optional_oneformat
+#end if
+#if str($param_default_mandatory_multformat):
+ -default_mandatory_multformat $param_default_mandatory_multformat
+#end if
+#if str($param_default_optional_multformat):
+ -default_optional_multformat $param_default_optional_multformat
+#end if
+-list_mandatory_noformat
+ #for token in $param_list_mandatory_noformat:
+ $token
+ #end for
+-list_optional_noformat
+ #for token in $param_list_optional_noformat:
+ $token
+ #end for
+-list_mandatory_oneformat
+ #for token in $param_list_mandatory_oneformat:
+ $token
+ #end for
+-list_optional_oneformat
+ #for token in $param_list_optional_oneformat:
+ $token
+ #end for
+-list_mandatory_multformat
+ #for token in $param_list_mandatory_multformat:
+ $token
+ #end for
+-list_optional_multformat
+ #for token in $param_list_optional_multformat:
+ $token
+ #end for
+#if $adv_opts.adv_opts_selector=='advanced':
+ #if str($adv_opts.param_mandatory_noformat_adv):
+ -mandatory_noformat_adv $adv_opts.param_mandatory_noformat_adv
+#end if
+ #if str($adv_opts.param_optional_noformat_adv):
+ -optional_noformat_adv $adv_opts.param_optional_noformat_adv
+#end if
+ #if str($adv_opts.param_mandatory_oneformat_adv):
+ -mandatory_oneformat_adv $adv_opts.param_mandatory_oneformat_adv
+#end if
+ #if str($adv_opts.param_optional_oneformat_adv):
+ -optional_oneformat_adv $adv_opts.param_optional_oneformat_adv
+#end if
+ #if str($adv_opts.param_mandatory_multformat_adv):
+ -mandatory_multformat_adv $adv_opts.param_mandatory_multformat_adv
+#end if
+ #if str($adv_opts.param_optional_multformat_adv):
+ -optional_multformat_adv $adv_opts.param_optional_multformat_adv
+#end if
+ #if str($adv_opts.param_default_mandatory_noformat_adv):
+ -default_mandatory_noformat_adv $adv_opts.param_default_mandatory_noformat_adv
+#end if
+ #if str($adv_opts.param_default_optional_noformat_adv):
+ -default_optional_noformat_adv $adv_opts.param_default_optional_noformat_adv
+#end if
+ #if str($adv_opts.param_default_mandatory_oneformat_adv):
+ -default_mandatory_oneformat_adv $adv_opts.param_default_mandatory_oneformat_adv
+#end if
+ #if str($adv_opts.param_default_optional_oneformat_adv):
+ -default_optional_oneformat_adv $adv_opts.param_default_optional_oneformat_adv
+#end if
+ #if str($adv_opts.param_default_mandatory_multformat_adv):
+ -default_mandatory_multformat_adv $adv_opts.param_default_mandatory_multformat_adv
+#end if
+ #if str($adv_opts.param_default_optional_multformat_adv):
+ -default_optional_multformat_adv $adv_opts.param_default_optional_multformat_adv
+#end if
+ -list_mandatory_noformat_adv
+ #for token in $param_list_mandatory_noformat_adv:
+ $token
+ #end for
+ -list_optional_noformat_adv
+ #for token in $param_list_optional_noformat_adv:
+ $token
+ #end for
+ -list_mandatory_oneformat_adv
+ #for token in $param_list_mandatory_oneformat_adv:
+ $token
+ #end for
+ -list_optional_oneformat_adv
+ #for token in $param_list_optional_oneformat_adv:
+ $token
+ #end for
+ -list_mandatory_multformat_adv
+ #for token in $param_list_mandatory_multformat_adv:
+ $token
+ #end for
+ -list_optional_multformat_adv
+ #for token in $param_list_optional_multformat_adv:
+ $token
+ #end for
+#end if
+> $param_stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Input File parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/integer.ctd b/tests/test-data/integer.ctd
new file mode 100644
index 00000000..a358e3c6
--- /dev/null
+++ b/tests/test-data/integer.ctd
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/integer.xml b/tests/test-data/integer.xml
new file mode 100644
index 00000000..bf20e9b2
--- /dev/null
+++ b/tests/test-data/integer.xml
@@ -0,0 +1,158 @@
+
+
+
+
+ Integer parameter tests
+
+ echo IntTest
+ macros.xml
+
+
+
+
+ echo IntTest
+
+#if str($param_wodefault_mandatory_unrestricted):
+ -wodefault_mandatory_unrestricted $param_wodefault_mandatory_unrestricted
+#end if
+#if str($param_default_mandatory_unrestricted):
+ -default_mandatory_unrestricted $param_default_mandatory_unrestricted
+#end if
+#if str($param_wodefault_optional_unrestricted):
+ -wodefault_optional_unrestricted $param_wodefault_optional_unrestricted
+#end if
+#if str($param_default_optional_unrestricted):
+ -default_optional_unrestricted $param_default_optional_unrestricted
+#end if
+#if str($param_wodefault_mandatory_unrestricted_min):
+ -wodefault_mandatory_unrestricted_min $param_wodefault_mandatory_unrestricted_min
+#end if
+#if str($param_default_mandatory_unrestricted_min):
+ -default_mandatory_unrestricted_min $param_default_mandatory_unrestricted_min
+#end if
+#if str($param_wodefault_optional_unrestricted_min):
+ -wodefault_optional_unrestricted_min $param_wodefault_optional_unrestricted_min
+#end if
+#if str($param_default_optional_unrestricted_min):
+ -default_optional_unrestricted_min $param_default_optional_unrestricted_min
+#end if
+#if str($param_wodefault_mandatory_unrestricted_max):
+ -wodefault_mandatory_unrestricted_max $param_wodefault_mandatory_unrestricted_max
+#end if
+#if str($param_default_mandatory_unrestricted_max):
+ -default_mandatory_unrestricted_max $param_default_mandatory_unrestricted_max
+#end if
+#if str($param_wodefault_optional_unrestricted_max):
+ -wodefault_optional_unrestricted_max $param_wodefault_optional_unrestricted_max
+#end if
+#if str($param_default_optional_unrestricted_max):
+ -default_optional_unrestricted_max $param_default_optional_unrestricted_max
+#end if
+#if str($param_wodefault_mandatory_unrestricted_minmax):
+ -wodefault_mandatory_unrestricted_minmax $param_wodefault_mandatory_unrestricted_minmax
+#end if
+#if str($param_default_mandatory_unrestricted_minmax):
+ -default_mandatory_unrestricted_minmax $param_default_mandatory_unrestricted_minmax
+#end if
+#if str($param_wodefault_optional_unrestricted_minmax):
+ -wodefault_optional_unrestricted_minmax $param_wodefault_optional_unrestricted_minmax
+#end if
+#if str($param_default_optional_unrestricted_minmax):
+ -default_optional_unrestricted_minmax $param_default_optional_unrestricted_minmax
+#end if
+#if $adv_opts.adv_opts_selector=='advanced':
+ #if str($adv_opts.param_wodefault_mandatory_unrestricted_adv):
+ -wodefault_mandatory_unrestricted_adv $adv_opts.param_wodefault_mandatory_unrestricted_adv
+#end if
+ #if str($adv_opts.param_default_mandatory_unrestricted_adv):
+ -default_mandatory_unrestricted_adv $adv_opts.param_default_mandatory_unrestricted_adv
+#end if
+ #if str($adv_opts.param_wodefault_optional_unrestricted_adv):
+ -wodefault_optional_unrestricted_adv $adv_opts.param_wodefault_optional_unrestricted_adv
+#end if
+ #if str($adv_opts.param_default_optional_unrestricted_adv):
+ -default_optional_unrestricted_adv $adv_opts.param_default_optional_unrestricted_adv
+#end if
+ #if str($adv_opts.param_wodefault_mandatory_unrestricted_adv_min):
+ -wodefault_mandatory_unrestricted_adv_min $adv_opts.param_wodefault_mandatory_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_default_mandatory_unrestricted_adv_min):
+ -default_mandatory_unrestricted_adv_min $adv_opts.param_default_mandatory_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_wodefault_optional_unrestricted_adv_min):
+ -wodefault_optional_unrestricted_adv_min $adv_opts.param_wodefault_optional_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_default_optional_unrestricted_adv_min):
+ -default_optional_unrestricted_adv_min $adv_opts.param_default_optional_unrestricted_adv_min
+#end if
+ #if str($adv_opts.param_wodefault_mandatory_unrestricted_adv_max):
+ -wodefault_mandatory_unrestricted_adv_max $adv_opts.param_wodefault_mandatory_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_default_mandatory_unrestricted_adv_max):
+ -default_mandatory_unrestricted_adv_max $adv_opts.param_default_mandatory_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_wodefault_optional_unrestricted_adv_max):
+ -wodefault_optional_unrestricted_adv_max $adv_opts.param_wodefault_optional_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_default_optional_unrestricted_adv_max):
+ -default_optional_unrestricted_adv_max $adv_opts.param_default_optional_unrestricted_adv_max
+#end if
+ #if str($adv_opts.param_wodefault_mandatory_unrestricted_adv_minmax):
+ -wodefault_mandatory_unrestricted_adv_minmax $adv_opts.param_wodefault_mandatory_unrestricted_adv_minmax
+#end if
+ #if str($adv_opts.param_default_mandatory_unrestricted_adv_minmax):
+ -default_mandatory_unrestricted_adv_minmax $adv_opts.param_default_mandatory_unrestricted_adv_minmax
+#end if
+ #if str($adv_opts.param_wodefault_optional_unrestricted_adv_minmax):
+ -wodefault_optional_unrestricted_adv_minmax $adv_opts.param_wodefault_optional_unrestricted_adv_minmax
+#end if
+ #if str($adv_opts.param_default_optional_unrestricted_adv_minmax):
+ -default_optional_unrestricted_adv_minmax $adv_opts.param_default_optional_unrestricted_adv_minmax
+#end if
+#end if
+> $param_stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Integer parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/macros.xml b/tests/test-data/macros.xml
new file mode 100644
index 00000000..82907e42
--- /dev/null
+++ b/tests/test-data/macros.xml
@@ -0,0 +1,31 @@
+
+
+
+
+ requirement
+
+
+
+
+
+
+
+
+
+
+ doi:10.1186/1471-2105-9-163
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/ofile.ctd b/tests/test-data/ofile.ctd
new file mode 100644
index 00000000..bed6a853
--- /dev/null
+++ b/tests/test-data/ofile.ctd
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/ofile.xml b/tests/test-data/ofile.xml
new file mode 100644
index 00000000..f3678f7a
--- /dev/null
+++ b/tests/test-data/ofile.xml
@@ -0,0 +1,167 @@
+
+
+
+
+ Input File parameter tests
+
+ echo outFileTest
+ macros.xml
+
+
+
+
+ echo outFileTest
+
+#if str($param_wodefault_mandatory_noformat):
+ -wodefault_mandatory_noformat $param_wodefault_mandatory_noformat
+#end if
+#if str($param_default_mandatory_noformat):
+ -default_mandatory_noformat $param_default_mandatory_noformat
+#end if
+#if str($param_wodefault_optional_noformat):
+ -wodefault_optional_noformat $param_wodefault_optional_noformat
+#end if
+#if str($param_default_optional_noformat):
+ -default_optional_noformat $param_default_optional_noformat
+#end if
+#if str($param_wodefault_mandatory_oneformat):
+ -wodefault_mandatory_oneformat $param_wodefault_mandatory_oneformat
+#end if
+#if str($param_default_mandatory_oneformat):
+ -default_mandatory_oneformat $param_default_mandatory_oneformat
+#end if
+#if str($param_wodefault_optional_oneformat):
+ -wodefault_optional_oneformat $param_wodefault_optional_oneformat
+#end if
+#if str($param_default_optional_oneformat):
+ -default_optional_oneformat $param_default_optional_oneformat
+#end if
+#if str($param_wodefault_mandatory_multformat):
+ -wodefault_mandatory_multformat $param_wodefault_mandatory_multformat
+#end if
+#if str($param_default_mandatory_multformat):
+ -default_mandatory_multformat $param_default_mandatory_multformat
+#end if
+#if str($param_wodefault_optional_multformat):
+ -wodefault_optional_multformat $param_wodefault_optional_multformat
+#end if
+#if str($param_default_optional_multformat):
+ -default_optional_multformat $param_default_optional_multformat
+#end if
+
+#if $rep_param_list_mandatory_noformat:
+-list_mandatory_noformat
+ #for token in $rep_param_list_mandatory_noformat:
+ #if " " in str(token):
+ "$token.param_list_mandatory_noformat"
+ #else
+ $token.param_list_mandatory_noformat
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_optional_noformat:
+-list_optional_noformat
+ #for token in $rep_param_list_optional_noformat:
+ #if " " in str(token):
+ "$token.param_list_optional_noformat"
+ #else
+ $token.param_list_optional_noformat
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_mandatory_oneformat:
+-list_mandatory_oneformat
+ #for token in $rep_param_list_mandatory_oneformat:
+ #if " " in str(token):
+ "$token.param_list_mandatory_oneformat"
+ #else
+ $token.param_list_mandatory_oneformat
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_optional_oneformat:
+-list_optional_oneformat
+ #for token in $rep_param_list_optional_oneformat:
+ #if " " in str(token):
+ "$token.param_list_optional_oneformat"
+ #else
+ $token.param_list_optional_oneformat
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_mandatory_multformat:
+-list_mandatory_multformat
+ #for token in $rep_param_list_mandatory_multformat:
+ #if " " in str(token):
+ "$token.param_list_mandatory_multformat"
+ #else
+ $token.param_list_mandatory_multformat
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_optional_multformat:
+-list_optional_multformat
+ #for token in $rep_param_list_optional_multformat:
+ #if " " in str(token):
+ "$token.param_list_optional_multformat"
+ #else
+ $token.param_list_optional_multformat
+ #end if
+ #end for
+#end if
+#if str($param_mandatory_noformat_adv):
+ -mandatory_noformat_adv $param_mandatory_noformat_adv
+#end if
+#if str($param_optional_noformat_adv):
+ -optional_noformat_adv $param_optional_noformat_adv
+#end if
+#if str($param_mandatory_oneformat_adv):
+ -mandatory_oneformat_adv $param_mandatory_oneformat_adv
+#end if
+#if str($param_optional_oneformat_adv):
+ -optional_oneformat_adv $param_optional_oneformat_adv
+#end if
+#if str($param_mandatory_multformat_adv):
+ -mandatory_multformat_adv $param_mandatory_multformat_adv
+#end if
+#if str($param_optional_multformat_adv):
+ -optional_multformat_adv $param_optional_multformat_adv
+#end if
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Input File parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/repeat.ctd b/tests/test-data/repeat.ctd
new file mode 100644
index 00000000..75d90af5
--- /dev/null
+++ b/tests/test-data/repeat.ctd
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/repeat.xml b/tests/test-data/repeat.xml
new file mode 100644
index 00000000..028177a3
--- /dev/null
+++ b/tests/test-data/repeat.xml
@@ -0,0 +1,870 @@
+
+
+
+
+ Repeat parameter tests
+
+ echo RepeatTest
+ macros.xml
+
+
+
+
+ echo RepeatTest
+
+
+#if $rep_param_string_wodefault_optional:
+-string_wodefault_optional
+ #for token in $rep_param_string_wodefault_optional:
+ #if " " in str(token):
+ "$token.param_string_wodefault_optional"
+ #else
+ $token.param_string_wodefault_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_string_wodefault_mandatory:
+-string_wodefault_mandatory
+ #for token in $rep_param_string_wodefault_mandatory:
+ #if " " in str(token):
+ "$token.param_string_wodefault_mandatory"
+ #else
+ $token.param_string_wodefault_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_string_default_optional:
+-string_default_optional
+ #for token in $rep_param_string_default_optional:
+ #if " " in str(token):
+ "$token.param_string_default_optional"
+ #else
+ $token.param_string_default_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_string_default_mandatory:
+-string_default_mandatory
+ #for token in $rep_param_string_default_mandatory:
+ #if " " in str(token):
+ "$token.param_string_default_mandatory"
+ #else
+ $token.param_string_default_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_wodefault_optional:
+-int_wodefault_optional
+ #for token in $rep_param_int_wodefault_optional:
+ #if " " in str(token):
+ "$token.param_int_wodefault_optional"
+ #else
+ $token.param_int_wodefault_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_wodefault_mandatory:
+-int_wodefault_mandatory
+ #for token in $rep_param_int_wodefault_mandatory:
+ #if " " in str(token):
+ "$token.param_int_wodefault_mandatory"
+ #else
+ $token.param_int_wodefault_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_default_optional:
+-int_default_optional
+ #for token in $rep_param_int_default_optional:
+ #if " " in str(token):
+ "$token.param_int_default_optional"
+ #else
+ $token.param_int_default_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_default_mandatory:
+-int_default_mandatory
+ #for token in $rep_param_int_default_mandatory:
+ #if " " in str(token):
+ "$token.param_int_default_mandatory"
+ #else
+ $token.param_int_default_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_wodefault_optional:
+-int_resticted_wodefault_optional
+ #for token in $rep_param_int_resticted_wodefault_optional:
+ #if " " in str(token):
+ "$token.param_int_resticted_wodefault_optional"
+ #else
+ $token.param_int_resticted_wodefault_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_wodefault_mandatory:
+-int_resticted_wodefault_mandatory
+ #for token in $rep_param_int_resticted_wodefault_mandatory:
+ #if " " in str(token):
+ "$token.param_int_resticted_wodefault_mandatory"
+ #else
+ $token.param_int_resticted_wodefault_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_default_optional:
+-int_resticted_default_optional
+ #for token in $rep_param_int_resticted_default_optional:
+ #if " " in str(token):
+ "$token.param_int_resticted_default_optional"
+ #else
+ $token.param_int_resticted_default_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_default_mandatory:
+-int_resticted_default_mandatory
+ #for token in $rep_param_int_resticted_default_mandatory:
+ #if " " in str(token):
+ "$token.param_int_resticted_default_mandatory"
+ #else
+ $token.param_int_resticted_default_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_wodefault_optional:
+-double_wodefault_optional
+ #for token in $rep_param_double_wodefault_optional:
+ #if " " in str(token):
+ "$token.param_double_wodefault_optional"
+ #else
+ $token.param_double_wodefault_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_wodefault_mandatory:
+-double_wodefault_mandatory
+ #for token in $rep_param_double_wodefault_mandatory:
+ #if " " in str(token):
+ "$token.param_double_wodefault_mandatory"
+ #else
+ $token.param_double_wodefault_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_default_optional:
+-double_default_optional
+ #for token in $rep_param_double_default_optional:
+ #if " " in str(token):
+ "$token.param_double_default_optional"
+ #else
+ $token.param_double_default_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_default_mandatory:
+-double_default_mandatory
+ #for token in $rep_param_double_default_mandatory:
+ #if " " in str(token):
+ "$token.param_double_default_mandatory"
+ #else
+ $token.param_double_default_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_wodefault_optional:
+-double_resticted_wodefault_optional
+ #for token in $rep_param_double_resticted_wodefault_optional:
+ #if " " in str(token):
+ "$token.param_double_resticted_wodefault_optional"
+ #else
+ $token.param_double_resticted_wodefault_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_wodefault_mandatory:
+-double_resticted_wodefault_mandatory
+ #for token in $rep_param_double_resticted_wodefault_mandatory:
+ #if " " in str(token):
+ "$token.param_double_resticted_wodefault_mandatory"
+ #else
+ $token.param_double_resticted_wodefault_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_default_optional:
+-double_resticted_default_optional
+ #for token in $rep_param_double_resticted_default_optional:
+ #if " " in str(token):
+ "$token.param_double_resticted_default_optional"
+ #else
+ $token.param_double_resticted_default_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_default_mandatory:
+-double_resticted_default_mandatory
+ #for token in $rep_param_double_resticted_default_mandatory:
+ #if " " in str(token):
+ "$token.param_double_resticted_default_mandatory"
+ #else
+ $token.param_double_resticted_default_mandatory
+ #end if
+ #end for
+#end if
+#if $adv_opts.adv_opts_selector=='advanced':
+
+#if $rep_param_string_wodefault_optional_adv:
+-string_wodefault_optional_adv
+ #for token in $rep_param_string_wodefault_optional_adv:
+ #if " " in str(token):
+ "$token.param_string_wodefault_optional_adv"
+ #else
+ $token.param_string_wodefault_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_string_wodefault_mandatory_adv:
+-string_wodefault_mandatory_adv
+ #for token in $rep_param_string_wodefault_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_string_wodefault_mandatory_adv"
+ #else
+ $token.param_string_wodefault_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_string_default_optional_adv:
+-string_default_optional_adv
+ #for token in $rep_param_string_default_optional_adv:
+ #if " " in str(token):
+ "$token.param_string_default_optional_adv"
+ #else
+ $token.param_string_default_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_string_default_mandatory_adv:
+-string_default_mandatory_adv
+ #for token in $rep_param_string_default_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_string_default_mandatory_adv"
+ #else
+ $token.param_string_default_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_wodefault_optional_adv:
+-int_wodefault_optional_adv
+ #for token in $rep_param_int_wodefault_optional_adv:
+ #if " " in str(token):
+ "$token.param_int_wodefault_optional_adv"
+ #else
+ $token.param_int_wodefault_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_wodefault_mandatory_adv:
+-int_wodefault_mandatory_adv
+ #for token in $rep_param_int_wodefault_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_int_wodefault_mandatory_adv"
+ #else
+ $token.param_int_wodefault_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_default_optional_adv:
+-int_default_optional_adv
+ #for token in $rep_param_int_default_optional_adv:
+ #if " " in str(token):
+ "$token.param_int_default_optional_adv"
+ #else
+ $token.param_int_default_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_default_mandatory_adv:
+-int_default_mandatory_adv
+ #for token in $rep_param_int_default_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_int_default_mandatory_adv"
+ #else
+ $token.param_int_default_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_wodefault_optional_adv:
+-int_resticted_wodefault_optional_adv
+ #for token in $rep_param_int_resticted_wodefault_optional_adv:
+ #if " " in str(token):
+ "$token.param_int_resticted_wodefault_optional_adv"
+ #else
+ $token.param_int_resticted_wodefault_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_wodefault_mandatory_adv:
+-int_resticted_wodefault_mandatory_adv
+ #for token in $rep_param_int_resticted_wodefault_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_int_resticted_wodefault_mandatory_adv"
+ #else
+ $token.param_int_resticted_wodefault_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_default_optional_adv:
+-int_resticted_default_optional_adv
+ #for token in $rep_param_int_resticted_default_optional_adv:
+ #if " " in str(token):
+ "$token.param_int_resticted_default_optional_adv"
+ #else
+ $token.param_int_resticted_default_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_int_resticted_default_mandatory_adv:
+-int_resticted_default_mandatory_adv
+ #for token in $rep_param_int_resticted_default_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_int_resticted_default_mandatory_adv"
+ #else
+ $token.param_int_resticted_default_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_wodefault_optional_adv:
+-double_wodefault_optional_adv
+ #for token in $rep_param_double_wodefault_optional_adv:
+ #if " " in str(token):
+ "$token.param_double_wodefault_optional_adv"
+ #else
+ $token.param_double_wodefault_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_wodefault_mandatory_adv:
+-double_wodefault_mandatory_adv
+ #for token in $rep_param_double_wodefault_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_double_wodefault_mandatory_adv"
+ #else
+ $token.param_double_wodefault_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_default_optional_adv:
+-double_default_optional_adv
+ #for token in $rep_param_double_default_optional_adv:
+ #if " " in str(token):
+ "$token.param_double_default_optional_adv"
+ #else
+ $token.param_double_default_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_default_mandatory_adv:
+-double_default_mandatory_adv
+ #for token in $rep_param_double_default_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_double_default_mandatory_adv"
+ #else
+ $token.param_double_default_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_wodefault_optional_adv:
+-double_resticted_wodefault_optional_adv
+ #for token in $rep_param_double_resticted_wodefault_optional_adv:
+ #if " " in str(token):
+ "$token.param_double_resticted_wodefault_optional_adv"
+ #else
+ $token.param_double_resticted_wodefault_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_wodefault_mandatory_adv:
+-double_resticted_wodefault_mandatory_adv
+ #for token in $rep_param_double_resticted_wodefault_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_double_resticted_wodefault_mandatory_adv"
+ #else
+ $token.param_double_resticted_wodefault_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_default_optional_adv:
+-double_resticted_default_optional_adv
+ #for token in $rep_param_double_resticted_default_optional_adv:
+ #if " " in str(token):
+ "$token.param_double_resticted_default_optional_adv"
+ #else
+ $token.param_double_resticted_default_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_double_resticted_default_mandatory_adv:
+-double_resticted_default_mandatory_adv
+ #for token in $rep_param_double_resticted_default_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_double_resticted_default_mandatory_adv"
+ #else
+ $token.param_double_resticted_default_mandatory_adv
+ #end if
+ #end for
+#end if
+#end if
+> $param_stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Repeat parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/select.ctd b/tests/test-data/select.ctd
new file mode 100644
index 00000000..77048022
--- /dev/null
+++ b/tests/test-data/select.ctd
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/select.xml b/tests/test-data/select.xml
new file mode 100644
index 00000000..7e243ccd
--- /dev/null
+++ b/tests/test-data/select.xml
@@ -0,0 +1,278 @@
+
+
+
+
+ Select parameter tests
+
+ echo SelectTest
+ macros.xml
+
+
+
+
+ echo SelectTest
+
+#if $param_wodefault_mandatory:
+ -wodefault_mandatory
+ #if " " in str($param_wodefault_mandatory):
+ "$param_wodefault_mandatory"
+ #else
+ $param_wodefault_mandatory
+ #end if
+#end if
+#if $param_default_mandatory:
+ -default_mandatory
+ #if " " in str($param_default_mandatory):
+ "$param_default_mandatory"
+ #else
+ $param_default_mandatory
+ #end if
+#end if
+#if $param_wodefault_optional:
+ -wodefault_optional
+ #if " " in str($param_wodefault_optional):
+ "$param_wodefault_optional"
+ #else
+ $param_wodefault_optional
+ #end if
+#end if
+#if $param_default_optional:
+ -default_optional
+ #if " " in str($param_default_optional):
+ "$param_default_optional"
+ #else
+ $param_default_optional
+ #end if
+#end if
+
+#if $rep_param_list_wodefault_optional:
+-list_wodefault_optional
+ #for token in $rep_param_list_wodefault_optional:
+ #if " " in str(token):
+ "$token.param_list_wodefault_optional"
+ #else
+ $token.param_list_wodefault_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_wodefault_mandatory:
+-list_wodefault_mandatory
+ #for token in $rep_param_list_wodefault_mandatory:
+ #if " " in str(token):
+ "$token.param_list_wodefault_mandatory"
+ #else
+ $token.param_list_wodefault_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_default_optional:
+-list_default_optional
+ #for token in $rep_param_list_default_optional:
+ #if " " in str(token):
+ "$token.param_list_default_optional"
+ #else
+ $token.param_list_default_optional
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_default_mandatory:
+-list_default_mandatory
+ #for token in $rep_param_list_default_mandatory:
+ #if " " in str(token):
+ "$token.param_list_default_mandatory"
+ #else
+ $token.param_list_default_mandatory
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_wodefault_optional_adv:
+-list_wodefault_optional_adv
+ #for token in $rep_param_list_wodefault_optional_adv:
+ #if " " in str(token):
+ "$token.param_list_wodefault_optional_adv"
+ #else
+ $token.param_list_wodefault_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_wodefault_mandatory_adv:
+-list_wodefault_mandatory_adv
+ #for token in $rep_param_list_wodefault_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_list_wodefault_mandatory_adv"
+ #else
+ $token.param_list_wodefault_mandatory_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_default_optional_adv:
+-list_default_optional_adv
+ #for token in $rep_param_list_default_optional_adv:
+ #if " " in str(token):
+ "$token.param_list_default_optional_adv"
+ #else
+ $token.param_list_default_optional_adv
+ #end if
+ #end for
+#end if
+
+#if $rep_param_list_default_mandatory_adv:
+-list_default_mandatory_adv
+ #for token in $rep_param_list_default_mandatory_adv:
+ #if " " in str(token):
+ "$token.param_list_default_mandatory_adv"
+ #else
+ $token.param_list_default_mandatory_adv
+ #end if
+ #end for
+#end if
+#if $adv_opts.adv_opts_selector=='advanced':
+ #if $adv_opts.param_wodefault_mandatory_adv:
+ -wodefault_mandatory_adv
+ #if " " in str($adv_opts.param_wodefault_mandatory_adv):
+ "$adv_opts.param_wodefault_mandatory_adv"
+ #else
+ $adv_opts.param_wodefault_mandatory_adv
+ #end if
+#end if
+ #if $adv_opts.param_default_mandatory_adv:
+ -default_mandatory_adv
+ #if " " in str($adv_opts.param_default_mandatory_adv):
+ "$adv_opts.param_default_mandatory_adv"
+ #else
+ $adv_opts.param_default_mandatory_adv
+ #end if
+#end if
+ #if $adv_opts.param_wodefault_optional_adv:
+ -wodefault_optional_adv
+ #if " " in str($adv_opts.param_wodefault_optional_adv):
+ "$adv_opts.param_wodefault_optional_adv"
+ #else
+ $adv_opts.param_wodefault_optional_adv
+ #end if
+#end if
+ #if $adv_opts.param_default_optional_adv:
+ -default_optional_adv
+ #if " " in str($adv_opts.param_default_optional_adv):
+ "$adv_opts.param_default_optional_adv"
+ #else
+ $adv_opts.param_default_optional_adv
+ #end if
+#end if
+#end if
+> $param_stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Select parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test-data/string.ctd b/tests/test-data/string.ctd
new file mode 100644
index 00000000..5c0e5fc7
--- /dev/null
+++ b/tests/test-data/string.ctd
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/test-data/string.xml b/tests/test-data/string.xml
new file mode 100644
index 00000000..90896ddb
--- /dev/null
+++ b/tests/test-data/string.xml
@@ -0,0 +1,118 @@
+
+
+
+
+ String parameter tests
+
+ echo StringTest
+ macros.xml
+
+
+
+
+ echo StringTest
+
+#if str($param_param_wodefault_mandatory_unrestricted):
+ -param_wodefault_mandatory_unrestricted "$param_param_wodefault_mandatory_unrestricted"
+#end if
+#if str($param_param_default_mandatory_unrestricted):
+ -param_default_mandatory_unrestricted "$param_param_default_mandatory_unrestricted"
+#end if
+#if str($param_param_wodefault_optional_unrestricted):
+ -param_wodefault_optional_unrestricted "$param_param_wodefault_optional_unrestricted"
+#end if
+#if str($param_param_default_optional_unrestricted):
+ -param_default_optional_unrestricted "$param_param_default_optional_unrestricted"
+#end if
+#if $adv_opts.adv_opts_selector=='advanced':
+ #if str($adv_opts.param_param_wodefault_mandatory_unrestricted_adv):
+ -param_wodefault_mandatory_unrestricted_adv "$adv_opts.param_param_wodefault_mandatory_unrestricted_adv"
+#end if
+ #if str($adv_opts.param_param_default_mandatory_unrestricted_adv):
+ -param_default_mandatory_unrestricted_adv "$adv_opts.param_param_default_mandatory_unrestricted_adv"
+#end if
+ #if str($adv_opts.param_param_wodefault_optional_unrestricted_adv):
+ -param_wodefault_optional_unrestricted_adv "$adv_opts.param_param_wodefault_optional_unrestricted_adv"
+#end if
+ #if str($adv_opts.param_param_default_optional_unrestricted_adv):
+ -param_default_optional_unrestricted_adv "$adv_opts.param_param_default_optional_unrestricted_adv"
+#end if
+#end if
+> $param_stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ String parameter tests.
+
+
+For more information, visit http://docs.are/unavailable.html
+
diff --git a/tests/test_galaxy_cli.py b/tests/test_galaxy_cli.py
new file mode 100644
index 00000000..d87c9ede
--- /dev/null
+++ b/tests/test_galaxy_cli.py
@@ -0,0 +1,73 @@
+import unittest
+import os
+import subprocess
+import tempfile
+
+def to_test_data(*args):
+ return os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "test-data", *args))
+
+def file2list(pth):
+ with open(pth) as f:
+ lines = f.readlines()
+ return lines
+
+class GalaxyCliTestCase(unittest.TestCase):
+
+ def _compare_cli_output(self, fileprefix):
+ in_pth = to_test_data('{}.ctd'.format(fileprefix))
+ macro_pth = to_test_data('macros.xml')
+ ftypes_pth = to_test_data('filetypes.txt')
+ tmp = tempfile.mkdtemp()
+
+ out_file = os.path.join(tmp, '{}.xml'.format(fileprefix))
+ #out_file = to_test_data('{}.xml'.format(fileprefix))
+
+ cmd = ['CTDConverter', 'galaxy', '-i', in_pth, '-o', out_file, '-f', ftypes_pth, '-m', macro_pth, '-b', 'version']
+ print(cmd)
+
+ popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ output, err = popen.communicate()
+ print(output)
+ print(err)
+
+ old_file_pth = to_test_data('{}.xml'.format(fileprefix))
+
+ print(out_file)
+ print(old_file_pth)
+
+ new_l = file2list(out_file)
+ old_l = file2list(old_file_pth)
+
+ for i in range(0, len(new_l)):
+ self.assertEqual(new_l[i].rstrip(), old_l[i].rstrip())
+
+ def test_galaxy_cli_bool_ctd(self):
+ self._compare_cli_output('bool')
+
+ def test_galaxy_cli_empty_ctd(self):
+ self._compare_cli_output('empty')
+
+ def test_galaxy_cli_float_ctd(self):
+ self._compare_cli_output('float')
+
+ def test_galaxy_cli_integer_ctd(self):
+ self._compare_cli_output('integer')
+
+ def test_galaxy_cli_repeat_ctd(self):
+ self._compare_cli_output('repeat')
+
+ def test_galaxy_cli_select_ctd(self):
+ self._compare_cli_output('select')
+
+ def test_galaxy_cli_string_ctd(self):
+ self._compare_cli_output('string')
+
+ def test_galaxy_cli_ifile_ctd(self):
+ self._compare_cli_output('ifile')
+
+ def test_galaxy_cli_ofile_ctd(self):
+ self._compare_cli_output('ofile')
+
+
+if __name__ == '__main__':
+ unittest.main()