Skip to content

Commit d508f0b

Browse files
Fix type of PackageOrderList in ResolvedContext.from_dict (#1985)
Signed-off-by: george.ridal <[email protected]> Co-authored-by: Jean-Christophe Morin <[email protected]>
1 parent 4f47b1b commit d508f0b

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/rez/resolved_context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1697,7 +1697,7 @@ def _print_version(value):
16971697

16981698
data = d.get("package_orderers")
16991699
if data:
1700-
r.package_orderers = [package_order.from_pod(x) for x in data]
1700+
r.package_orderers = PackageOrderList([package_order.from_pod(x) for x in data])
17011701
else:
17021702
r.package_orderers = None
17031703

src/rez/tests/test_context.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,35 @@ def test_orderer_package_argument(self):
278278
resolved = [x.qualified_package_name for x in r.resolved_packages]
279279
self.assertEqual(resolved, ['python-2.7.0'])
280280

281+
def test_serialize_roundtrip_with_extra_settings(self):
282+
from rez.package_order import VersionSplitPackageOrder
283+
from rez.version import Version
284+
285+
packages_path = self.data_path("solver", "packages")
286+
287+
file = os.path.join(self.root, "roundtrip.rxt")
288+
orderers = [VersionSplitPackageOrder(Version("2.6.8"))]
289+
r1 = ResolvedContext(
290+
["python"],
291+
package_orderers=orderers,
292+
package_paths=[packages_path],
293+
)
294+
r1.save(file)
295+
r2 = ResolvedContext.load(file)
296+
297+
self.assertEqual(r1, r2)
298+
299+
ignored_properties = [
300+
'load_path',
301+
'graph_string',
302+
'graph_'
303+
]
304+
for k, v in r1.__dict__.items():
305+
if k in ignored_properties:
306+
continue
307+
# check types here, as not all type instances are comparable
308+
self.assertIs(type(v), type(r2.__dict__.get(k)))
309+
281310

282311
if __name__ == '__main__':
283312
unittest.main()

0 commit comments

Comments
 (0)