From ab68b951da7a766f06cc5fbbfaea34a2ea1b5dac Mon Sep 17 00:00:00 2001 From: John Chilton Date: Wed, 28 Sep 2016 11:06:39 -0400 Subject: [PATCH] Implement metadata testing for list metadata. --- test/base/interactor.py | 24 +++++++++++++++---- .../tools/metadata_column_names.xml | 3 +-- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/test/base/interactor.py b/test/base/interactor.py index 04a115a5d59..0ede58b30b1 100644 --- a/test/base/interactor.py +++ b/test/base/interactor.py @@ -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 ) diff --git a/test/functional/tools/metadata_column_names.xml b/test/functional/tools/metadata_column_names.xml index f8ec85675ba..c7edd8f3263 100644 --- a/test/functional/tools/metadata_column_names.xml +++ b/test/functional/tools/metadata_column_names.xml @@ -1,4 +1,4 @@ - + Tests whether metadata is being set correctly. -