1818
1919from openstack .image .v2 import image
2020from openstack .image .v2 import member
21+ from openstack .image .v2 import metadef_namespace
2122from openstack .image .v2 import task
2223
2324from openstackclient .tests .unit import fakes
@@ -44,6 +45,7 @@ def __init__(self, **kwargs):
4445 self .update_member = mock .Mock ()
4546
4647 self .remove_tag = mock .Mock ()
48+ self .metadef_namespaces = mock .Mock ()
4749
4850 self .tasks = mock .Mock ()
4951 self .get_task = mock .Mock ()
@@ -55,6 +57,8 @@ def __init__(self, **kwargs):
5557 self .tasks = mock .Mock ()
5658 self .tasks .resource_class = fakes .FakeResource (None , {})
5759
60+ self .metadef_namespaces = mock .Mock ()
61+
5862
5963class TestImagev2 (utils .TestCommand ):
6064
@@ -202,3 +206,53 @@ def create_tasks(attrs=None, count=2):
202206 tasks .append (create_one_task (attrs ))
203207
204208 return tasks
209+
210+
211+ class FakeMetadefNamespaceClient :
212+
213+ def __init__ (self , ** kwargs ):
214+ self .metadef_namespaces = mock .Mock ()
215+
216+ self .auth_token = kwargs ['token' ]
217+ self .management_url = kwargs ['endpoint' ]
218+ self .version = 2.0
219+
220+
221+ class TestMetadefNamespaces (utils .TestCommand ):
222+
223+ def setUp (self ):
224+ super ().setUp ()
225+
226+ self .app .client_manager .image = FakeMetadefNamespaceClient (
227+ endpoint = fakes .AUTH_URL ,
228+ token = fakes .AUTH_TOKEN ,
229+ )
230+
231+ self .app .client_manager .identity = identity_fakes .FakeIdentityv3Client (
232+ endpoint = fakes .AUTH_URL ,
233+ token = fakes .AUTH_TOKEN ,
234+ )
235+
236+
237+ def create_one_metadef_namespace (attrs = None ):
238+ """Create a fake MetadefNamespace member.
239+
240+ :param attrs: A dictionary with all attributes of metadef_namespace member
241+ :type attrs: dict
242+ :return: a list of MetadefNamespace objects
243+ :rtype: list of `metadef_namespace.MetadefNamespace`
244+ """
245+ attrs = attrs or {}
246+
247+ metadef_namespace_list = {
248+ 'created_at' : '2022-08-17T11:30:22Z' ,
249+ 'display_name' : 'Flavor Quota' ,
250+ 'namespace' : 'OS::Compute::Quota' ,
251+ 'owner' : 'admin' ,
252+ 'resource_type_associations' : ['OS::Nova::Flavor' ],
253+ 'visibility' : 'public' ,
254+ }
255+
256+ # Overwrite default attributes if there are some attributes set
257+ metadef_namespace_list .update (attrs )
258+ return metadef_namespace .MetadefNamespace (metadef_namespace_list )
0 commit comments