summaryrefslogtreecommitdiff
path: root/nova/tests/unit/objects
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-08-31 01:35:14 +0000
committerGerrit Code Review <review@openstack.org>2021-08-31 01:35:14 +0000
commit01d7896938dcda503637f937edbef84c1cae6a47 (patch)
treefa1439ce9a745cc321b2a1c6750d7ae6e58e8489 /nova/tests/unit/objects
parent02b2d3e96ece24d7fc0f463d7a097e12f5605d6d (diff)
parent9de8bfb6e61ebb9776f8027eb9c334044c7bc8bd (diff)
downloadnova-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.py2
-rw-r--r--nova/tests/unit/objects/test_request_spec.py51
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)