|
2 | 2 | # License, v. 2.0. If a copy of the MPL was not distributed with this |
3 | 3 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
4 | 4 |
|
5 | | - |
6 | 5 | import unittest |
7 | 6 |
|
8 | 7 | from taskgraph.util.templates import merge, merge_to |
@@ -50,3 +49,24 @@ def test_merge(self): |
50 | 49 | self.assertEqual(first, {"a": 1, "b": 2, "d": 11}) |
51 | 50 | self.assertEqual(second, {"b": 20, "c": 30}) |
52 | 51 | self.assertEqual(third, {"c": 300, "d": 400}) |
| 52 | + |
| 53 | + def test_merge_by(self): |
| 54 | + source = { |
| 55 | + "x": "abc", |
| 56 | + "y": {"by-foo": {"quick": "fox", "default": ["a", "b", "c"]}}, |
| 57 | + } |
| 58 | + dest = {"y": {"by-foo": {"purple": "rain", "default": ["x", "y", "z"]}}} |
| 59 | + expected = { |
| 60 | + "x": "abc", |
| 61 | + "y": {"by-foo": {"quick": "fox", "default": ["a", "b", "c"]}}, |
| 62 | + } # source wins |
| 63 | + self.assertEqual(merge_to(source, dest), expected) |
| 64 | + self.assertEqual(dest, expected) |
| 65 | + |
| 66 | + def test_merge_multiple_by(self): |
| 67 | + source = {"x": {"by-foo": {"quick": "fox", "default": ["a", "b", "c"]}}} |
| 68 | + dest = {"x": {"by-bar": {"purple": "rain", "default": ["x", "y", "z"]}}} |
| 69 | + expected = { |
| 70 | + "x": {"by-foo": {"quick": "fox", "default": ["a", "b", "c"]}} |
| 71 | + } # source wins |
| 72 | + self.assertEqual(merge_to(source, dest), expected) |
0 commit comments