diff options
author | Zuul <zuul@review.opendev.org> | 2021-08-31 01:35:14 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-08-31 01:35:14 +0000 |
commit | 01d7896938dcda503637f937edbef84c1cae6a47 (patch) | |
tree | fa1439ce9a745cc321b2a1c6750d7ae6e58e8489 /nova/tests/unit/objects | |
parent | 02b2d3e96ece24d7fc0f463d7a097e12f5605d6d (diff) | |
parent | 9de8bfb6e61ebb9776f8027eb9c334044c7bc8bd (diff) | |
download | nova-01d7896938dcda503637f937edbef84c1cae6a47.tar.gz |
Merge "Add same_subtree field to RequestLevelParams"
Diffstat (limited to 'nova/tests/unit/objects')
-rw-r--r-- | nova/tests/unit/objects/test_objects.py | 2 | ||||
-rw-r--r-- | nova/tests/unit/objects/test_request_spec.py | 51 |
2 files changed, 52 insertions, 1 deletions
diff --git a/nova/tests/unit/objects/test_objects.py b/nova/tests/unit/objects/test_objects.py index bb7e879224..4e16baeaa1 100644 --- a/nova/tests/unit/objects/test_objects.py +++ b/nova/tests/unit/objects/test_objects.py @@ -1123,7 +1123,7 @@ object_data = { 'Quotas': '1.3-3b2b91371f60e788035778fc5f87797d', 'QuotasNoOp': '1.3-d1593cf969c81846bc8192255ea95cce', 'RequestGroup': '1.3-0458d350a8ec9d0673f9be5640a990ce', - 'RequestLevelParams': '1.0-1e5c8c18bd44cd233c8b32509c99d06f', + 'RequestLevelParams': '1.1-3a718a0ae0bfdec669e7108631b3f313', 'RequestSpec': '1.14-2cdbda368ca07e10905dc5fe96908a58', 'Resource': '1.0-d8a2abbb380da583b995fd118f6a8953', 'ResourceList': '1.0-4a53826625cc280e15fae64a575e0879', diff --git a/nova/tests/unit/objects/test_request_spec.py b/nova/tests/unit/objects/test_request_spec.py index 7edc84bf62..2963909c32 100644 --- a/nova/tests/unit/objects/test_request_spec.py +++ b/nova/tests/unit/objects/test_request_spec.py @@ -1692,3 +1692,54 @@ class TestMappingRequestGroupsToProviders(test.NoDBTestCase): allocations, provider_traits) self.assertIn('allocations leftover', mock_debug.mock_calls[3][1][0]) + + +class TestRequestLevelParams(test.NoDBTestCase): + def setUp(self): + super().setUp() + self.user_id = uuids.user_id + self.project_id = uuids.project_id + self.context = context.RequestContext(uuids.user_id, uuids.project_id) + + def test_obj_make_compatible(self): + obj = request_spec.RequestLevelParams( + self.context, + root_required={"CUSTOM_FOO", "CUSTOM_BAR"}, + root_forbidden={"CUSTOM_BAZ"}, + same_subtree=[["group1", "group2"], ["group3", "group4"]]) + + manifest = ovo_base.obj_tree_get_versions(obj.obj_name()) + + obj_primitive = obj.obj_to_primitive( + target_version='1.1', + version_manifest=manifest)['nova_object.data'] + self.assertIn('root_required', obj_primitive) + self.assertIn('root_forbidden', obj_primitive) + self.assertIn('same_subtree', obj_primitive) + + obj_primitive = obj.obj_to_primitive( + target_version='1.0', + version_manifest=manifest)['nova_object.data'] + self.assertIn('root_required', obj_primitive) + self.assertIn('root_forbidden', obj_primitive) + self.assertNotIn('same_subtree', obj_primitive) + + def test_extend_with(self): + obj1 = request_spec.RequestLevelParams( + self.context, + root_required={"CUSTOM_FOO"}, + root_forbidden={"CUSTOM_BAZ"}, + same_subtree=[["group1", "group2"]]) + obj2 = request_spec.RequestLevelParams( + self.context, + root_required={"CUSTOM_BAR"}, + root_forbidden={"CUSTOM_FOOBAR"}, + same_subtree=[["group3", "group4"]]) + + obj1.extend_with(obj2) + + self.assertEqual({"CUSTOM_FOO", "CUSTOM_BAR"}, obj1.root_required) + self.assertEqual({"CUSTOM_BAZ", "CUSTOM_FOOBAR"}, obj1.root_forbidden) + self.assertEqual( + [["group1", "group2"], ["group3", "group4"]], + obj1.same_subtree) |