1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-21 20:38:57 +00:00

Fixing merge_lists to work for list_or_* types

This commit is contained in:
Sergei Trofimov 2015-06-01 16:18:13 +01:00
parent 29aa81a694
commit ead0be2763
2 changed files with 11 additions and 1 deletions

View File

@ -20,7 +20,7 @@ from unittest import TestCase
from nose.tools import raises, assert_equal, assert_not_equal # pylint: disable=E0611 from nose.tools import raises, assert_equal, assert_not_equal # pylint: disable=E0611
from wlauto.utils.android import check_output from wlauto.utils.android import check_output
from wlauto.utils.misc import merge_dicts, TimeoutError from wlauto.utils.misc import merge_dicts, merge_lists, TimeoutError
from wlauto.utils.types import list_or_integer, list_or_bool, caseless_string, arguments from wlauto.utils.types import list_or_integer, list_or_bool, caseless_string, arguments
@ -56,6 +56,12 @@ class TestMerge(TestCase):
result = merge_dicts(base, other, list_duplicates='last') result = merge_dicts(base, other, list_duplicates='last')
assert_equal(result['a'], [1, 2, 3, 4, 5]) assert_equal(result['a'], [1, 2, 3, 4, 5])
def test_merge_lists(self):
result = merge_lists([1, 2, 3], 7)
assert_equal(result, [1, 2, 3, 7])
result = merge_lists([1, 2, 3], 1, duplicates='last')
assert_equal(result, [2, 3, 1])
@raises(ValueError) @raises(ValueError)
def test_type_mismatch(self): def test_type_mismatch(self):
base = {'a': [1, 2, 3]} base = {'a': [1, 2, 3]}

View File

@ -330,6 +330,10 @@ def _merge_two_lists(base, other, duplicates='all', dict_type=dict): # pylint:
will never be removed. will never be removed.
""" """
if not isiterable(base):
base = [base]
if not isiterable(other):
other = [other]
if duplicates == 'all': if duplicates == 'all':
merged_list = [] merged_list = []
for v in normalize(base, dict_type) + normalize(other, dict_type): for v in normalize(base, dict_type) + normalize(other, dict_type):