From a38501985bf9540c0f1f9a67a3e491141c387c63 Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Tue, 1 Mar 2022 19:36:10 -0300 Subject: [PATCH] 18574: Adds tests for value list conversions. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- sdk/python/tests/test_vocabulary.py | 40 ++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/sdk/python/tests/test_vocabulary.py b/sdk/python/tests/test_vocabulary.py index 003bd32092..1d20777823 100644 --- a/sdk/python/tests/test_vocabulary.py +++ b/sdk/python/tests/test_vocabulary.py @@ -147,6 +147,20 @@ class VocabularyTest(unittest.TestCase): "failing test case: {}".format(case) ) + def test_convert_to_identifiers_value_lists(self): + cases = [ + {'IDTAGIMPORTANCES': ['IDVALIMPORTANCE1', 'IDVALIMPORTANCE2']}, + {'IDTAGIMPORTANCES': ['High', 'Medium']}, + {'importance': ['IDVALIMPORTANCE1', 'IDVALIMPORTANCE2']}, + {'priority': ['high', 'medium']}, + ] + for case in cases: + self.assertEqual( + self.voc.convert_to_identifiers(case), + {'IDTAGIMPORTANCES': ['IDVALIMPORTANCE1', 'IDVALIMPORTANCE2']}, + "failing test case: {}".format(case) + ) + def test_convert_to_identifiers_unknown_key(self): # Non-strict vocabulary self.assertEqual(self.voc.strict_keys, False) @@ -194,11 +208,19 @@ class VocabularyTest(unittest.TestCase): "failing test case: {}".format(case) ) - def test_convert_roundtrip(self): - initial = {'IDTAGIMPORTANCES': 'IDVALIMPORTANCE1', 'IDTAGANIMALS': 'IDVALANIMAL1', 'IDTAGCOMMENTS': 'Very important person'} - converted = self.voc.convert_to_labels(initial) - self.assertNotEqual(converted, initial) - self.assertEqual(self.voc.convert_to_identifiers(converted), initial) + def test_convert_to_labels_value_lists(self): + cases = [ + {'IDTAGIMPORTANCES': ['IDVALIMPORTANCE1', 'IDVALIMPORTANCE2']}, + {'IDTAGIMPORTANCES': ['High', 'Medium']}, + {'importance': ['IDVALIMPORTANCE1', 'IDVALIMPORTANCE2']}, + {'priority': ['high', 'medium']}, + ] + for case in cases: + self.assertEqual( + self.voc.convert_to_labels(case), + {'Importance': ['High', 'Medium']}, + "failing test case: {}".format(case) + ) def test_convert_to_labels_unknown_key(self): # Non-strict vocabulary @@ -217,4 +239,10 @@ class VocabularyTest(unittest.TestCase): # Strict key self.assertEqual(self.voc['priority'].strict, True) with self.assertRaises(ValueError): - self.voc.convert_to_labels({'IDTAGIMPORTANCES': 'foo'}) \ No newline at end of file + self.voc.convert_to_labels({'IDTAGIMPORTANCES': 'foo'}) + + def test_convert_roundtrip(self): + initial = {'IDTAGIMPORTANCES': 'IDVALIMPORTANCE1', 'IDTAGANIMALS': 'IDVALANIMAL1', 'IDTAGCOMMENTS': 'Very important person'} + converted = self.voc.convert_to_labels(initial) + self.assertNotEqual(converted, initial) + self.assertEqual(self.voc.convert_to_identifiers(converted), initial) -- 2.30.2