2023-07-03 14:00:05 +00:00
|
|
|
"""Unittest for the resmokelib.testing.fixturelib.utils module."""
|
2022-03-24 20:45:29 +00:00
|
|
|
|
|
|
|
|
import copy
|
|
|
|
|
import unittest
|
|
|
|
|
|
|
|
|
|
from buildscripts.resmokelib.testing.fixtures.fixturelib import FixtureLib
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestMergeMongoOptionDicts(unittest.TestCase):
|
|
|
|
|
def setUp(self) -> None:
|
|
|
|
|
self.under_test = FixtureLib()
|
|
|
|
|
|
2022-09-02 21:56:05 +00:00
|
|
|
def test_merge_empty(self):
|
2022-03-24 20:45:29 +00:00
|
|
|
original = {
|
2024-05-16 18:00:17 -04:00
|
|
|
"dbpath": "value0",
|
|
|
|
|
self.under_test.SET_PARAMETERS_KEY: {
|
2022-03-24 20:45:29 +00:00
|
|
|
"param1": "value1",
|
|
|
|
|
"param2": "value2",
|
2024-05-16 18:00:17 -04:00
|
|
|
},
|
2022-03-24 20:45:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override = {}
|
|
|
|
|
merged = self.under_test.merge_mongo_option_dicts(copy.deepcopy(original), override)
|
|
|
|
|
|
|
|
|
|
self.assertDictEqual(merged, original)
|
|
|
|
|
|
2022-09-02 21:56:05 +00:00
|
|
|
def test_merge_non_params(self):
|
2022-03-24 20:45:29 +00:00
|
|
|
non_param1_key = "non_param1"
|
|
|
|
|
non_param2_key = "non_param2"
|
|
|
|
|
original = {
|
2024-05-16 18:00:17 -04:00
|
|
|
non_param1_key: "value0",
|
|
|
|
|
non_param2_key: {
|
|
|
|
|
"nested_param1": "value0",
|
|
|
|
|
},
|
|
|
|
|
self.under_test.SET_PARAMETERS_KEY: {
|
|
|
|
|
"param1": "value1",
|
|
|
|
|
},
|
2022-03-24 20:45:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override = {
|
|
|
|
|
non_param1_key: "value1",
|
|
|
|
|
non_param2_key: "value1",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
self.under_test.merge_mongo_option_dicts(original, override)
|
|
|
|
|
|
|
|
|
|
expected = {
|
2024-05-16 18:00:17 -04:00
|
|
|
non_param1_key: "value1",
|
|
|
|
|
non_param2_key: "value1",
|
|
|
|
|
self.under_test.SET_PARAMETERS_KEY: {
|
|
|
|
|
"param1": "value1",
|
|
|
|
|
},
|
2022-03-24 20:45:29 +00:00
|
|
|
}
|
|
|
|
|
self.assertEqual(original, expected)
|
|
|
|
|
|
2022-09-02 21:56:05 +00:00
|
|
|
def test_merge_params(self):
|
2022-03-24 20:45:29 +00:00
|
|
|
original = {
|
2024-05-16 18:00:17 -04:00
|
|
|
"dbpath": "value",
|
|
|
|
|
self.under_test.SET_PARAMETERS_KEY: {
|
2022-03-24 20:45:29 +00:00
|
|
|
"param1": "value",
|
2024-05-16 18:00:17 -04:00
|
|
|
"param2": {
|
|
|
|
|
"param3": "value",
|
|
|
|
|
},
|
|
|
|
|
},
|
2022-03-24 20:45:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override = {self.under_test.SET_PARAMETERS_KEY: {"param2": {"param3": {"param4": "value"}}}}
|
|
|
|
|
self.under_test.merge_mongo_option_dicts(original, override)
|
|
|
|
|
|
|
|
|
|
expected = {
|
2024-05-16 18:00:17 -04:00
|
|
|
"dbpath": "value",
|
|
|
|
|
self.under_test.SET_PARAMETERS_KEY: {
|
|
|
|
|
"param1": "value",
|
|
|
|
|
"param2": {"param3": {"param4": "value"}},
|
|
|
|
|
},
|
2022-03-24 20:45:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
self.assertDictEqual(original, expected)
|