blob: 43172133942b9b930e25d1f01f5aadc33002e9be [file] [log] [blame]
#!/usr/bin/env python3.8
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import copy
import unittest
import merge_sysmgr_config
class TestMerge(unittest.TestCase):
def test_merge_list(self):
ls = ["foo"]
merge_sysmgr_config.merge_list(ls, ["bar"])
self.assertEqual(ls, ["foo", "bar"])
with self.assertRaises(merge_sysmgr_config.DuplicateEntryError):
merge_sysmgr_config.merge_list(ls, ["bar"])
def test_merge_dict(self):
d = {"foo": 1}
merge_sysmgr_config.merge_dict(d, {"bar": 2})
self.assertEqual(d, {"foo": 1, "bar": 2})
with self.assertRaises(merge_sysmgr_config.DuplicateEntryError):
merge_sysmgr_config.merge_dict(d, {"bar": 2})
def test_nonrecursive(self):
d = {"outer": {"inner": "value"}}
with self.assertRaises(merge_sysmgr_config.DuplicateEntryError):
merge_sysmgr_config.merge_dict(d, d)
def test_merge_config(self):
a = {
"services": {
"fuchsia.foo": "foo"
},
"update_dependencies": ["fuchsia.foo"],
"exclusive": ["pass-through"]
}
b = {
"services": {
"fuchsia.bar": "bar"
},
"update_dependencies": ["fuchsia.bar"]
}
merged = copy.deepcopy(a)
merge_sysmgr_config.merge_config(merged, b)
self.assertEqual(
merged, {
"services": {
"fuchsia.bar": "bar",
"fuchsia.foo": "foo"
},
"update_dependencies": ["fuchsia.foo", "fuchsia.bar"],
"exclusive": ["pass-through"]
})
merge_sysmgr_config.merge_config(b, a)
self.assertEqual(
b, {
"services": {
"fuchsia.bar": "bar",
"fuchsia.foo": "foo"
},
"update_dependencies": ["fuchsia.bar", "fuchsia.foo"],
"exclusive": ["pass-through"]
})