Implement metadata testing for list metadata.

This commit is contained in:
John Chilton
2016-09-28 11:06:39 -04:00
parent 8414e909a6
commit ab68b951da
2 changed files with 20 additions and 7 deletions
+19 -5
View File
@@ -124,11 +124,25 @@ class GalaxyInteractorApi( object ):
for key, value in metadata.items():
try:
dataset_value = dataset.get( key, None )
if text_type(dataset_value) != text_type(value):
msg = "Dataset metadata verification for [%s] failed, expected [%s] but found [%s]. Dataset API value was [%s]."
msg_params = ( key, value, dataset_value, dataset )
msg = msg % msg_params
raise Exception( msg )
def compare(val, expected):
if text_type(val) != text_type(expected):
msg = "Dataset metadata verification for [%s] failed, expected [%s] but found [%s]. Dataset API value was [%s]."
msg_params = ( key, value, dataset_value, dataset )
msg = msg % msg_params
raise Exception( msg )
if isinstance(dataset_value, list):
value = text_type(value).split(",")
if len(value) != len(dataset_value):
msg = "Dataset metadata verification for [%s] failed, expected [%s] but found [%s], lists differ in length. Dataset API value was [%s]."
msg_params = ( key, value, dataset_value, dataset )
msg = msg % msg_params
raise Exception( msg )
for val, expected in zip(dataset_value, value):
compare(val, expected)
else:
compare(dataset_value, value)
except KeyError:
msg = "Failed to verify dataset metadata, metadata key [%s] was not found." % key
raise Exception( msg )
@@ -1,4 +1,4 @@
<tool id="functional_test_metadata_columns" name="functional_test_metadata_columns" version="1.0.0">
<tool id="metadata_columns" name="metadata_columns" version="1.0.0">
<description>Tests whether metadata is being set correctly.</description>
<command><![CDATA[
cp '$input' '$output'
@@ -16,7 +16,6 @@
<tests>
<test>
<param name="input" value="2.tabular" />
<output name="output">
<metadata name="column_names" value="First,2.tabular"/>
</output>