Skip to content
This repository has been archived by the owner on Oct 13, 2023. It is now read-only.

Commit

Permalink
Merge pull request #638 from vfreex/fix-merger
Browse files Browse the repository at this point in the history
Fix Unexpected value type error
  • Loading branch information
joepvd committed Sep 2, 2022
2 parents df8d1e7 + d847e2e commit b0bc443
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
3 changes: 2 additions & 1 deletion doozerlib/assembly.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,8 @@ def _assembly_config_struct(releases_config: Model, assembly: typing.Optional[st
parent_config_struct = _assembly_config_struct(releases_config, target_assembly.basis.assembly, key, default)
if key in target_assembly:
key_struct = target_assembly[key]

if hasattr(key_struct, "primitive"):
key_struct = key_struct.primitive()
key_struct = merger(key_struct, parent_config_struct.primitive() if hasattr(parent_config_struct, "primitive") else parent_config_struct)
else:
key_struct = parent_config_struct
Expand Down
9 changes: 7 additions & 2 deletions tests/test_assembly.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ def test_merger(self):
self.assertEqual(merger('4', '5'), '4')
self.assertEqual(merger(None, '5'), None)
self.assertEqual(merger(True, None), True)
self.assertEqual(merger([1, 2], [2, 3]), [1, 2, 3])

# Dicts are additive
self.assertEqual(
Expand Down Expand Up @@ -451,15 +452,17 @@ def test_assembly_config_struct(self):
"foo": {
"a": 1,
"b": 2
}
},
"bar": [1, 2, 3]
}
},
"parent": {
"assembly": {
"foo": {
"b": 3,
"c": 4,
}
},
"bar": [0, 2, 4]
}
},
}
Expand All @@ -470,3 +473,5 @@ def test_assembly_config_struct(self):
"b": 2,
"c": 4,
})
actual = _assembly_config_struct(Model(release_configs), "child", "bar", [])
self.assertEqual(actual, [0, 1, 2, 3, 4])

0 comments on commit b0bc443

Please sign in to comment.