X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_common%2Ftests%2Ftest_dbmemory.py;h=344d3dd343338e15a55f41c62e086585585a3a7a;hb=refs%2Fchanges%2F60%2F9760%2F3;hp=cbc971548e08143033c10970f0ab53e99e580dac;hpb=bf6c5729597476199627c6750e8db3a92ce47c9c;p=osm%2Fcommon.git diff --git a/osm_common/tests/test_dbmemory.py b/osm_common/tests/test_dbmemory.py index cbc9715..344d3dd 100644 --- a/osm_common/tests/test_dbmemory.py +++ b/osm_common/tests/test_dbmemory.py @@ -771,6 +771,33 @@ class TestDbMemory(unittest.TestCase): db_men.set_one("table", {}, None, push=push_dict) self.assertEqual(db_content, expected, message) + def test_set_one_push_list(self): + example = {"a": [1, "1", 1], "d": {}, "n": None} + test_set = ( + # (database content, set-content, expected database content (None=fails), message) + (example, {"d.b.c": [1]}, {"a": [1, "1", 1], "d": {"b": {"c": [1]}}, "n": None}, + "push non existing arrray2"), + (example, {"b": [1]}, {"a": [1, "1", 1], "d": {}, "b": [1], "n": None}, "push non existing arrray3"), + (example, {"a.6": [1]}, {"a": [1, "1", 1, None, None, None, [1]], "d": {}, "n": None}, + "push non existing arrray"), + (example, {"a": [2, 3]}, {"a": [1, "1", 1, 2, 3], "d": {}, "n": None}, "push two item"), + (example, {"a": [{1: 1}]}, {"a": [1, "1", 1, {1: 1}], "d": {}, "n": None}, "push a dict"), + (example, {"d": [1]}, None, "push over dict"), + (example, {"n": [1]}, None, "push over None"), + (example, {"a": 1}, None, "invalid push list non an array"), + ) + db_men = DbMemory() + db_men._find = Mock() + for db_content, push_list, expected, message in test_set: + db_content = deepcopy(db_content) + db_men._find.return_value = ((0, db_content), ) + if expected is None: + self.assertRaises(DbException, db_men.set_one, "table", {}, None, fail_on_empty=False, + push_list=push_list) + else: + db_men.set_one("table", {}, None, push_list=push_list) + self.assertEqual(db_content, expected, message) + def test_unset_one(self): example = {"a": [1, "1", 1], "d": {}, "n": None} test_set = (