Fakes¶
该 fakes 模块旨在帮助使用 OpenStack SDK 的应用程序开发者进行单元测试。它提供了一些辅助工具来生成假的 Resource 和 Proxy 实例。这些假对象不需要建立连接,允许您验证您的应用程序是否使用 Resource 和 Proxy 实例的有效属性和方法。
- openstack.test.fakes.generate_fake_resource(resource_type, **attrs)¶
生成一个假的资源
示例用法
>>> from openstack.compute.v2 import server >>> from openstack.test import fakes >>> fakes.generate_fake_resource(server.Server) openstack.compute.v2.server.Server(...)
- 参数:
resource_type – 对象类
attrs – 要设置在资源上的可选属性
- 返回值:
一个填充了预期类型假值的
resource_type类实例- 引发:
NotImplementedError – 如果资源属性指定了一个无法自动生成的
type或list_type
- openstack.test.fakes.generate_fake_resources(resource_type, count=1, attrs=None)¶
生成给定数量的假资源实体
示例用法
>>> from openstack.compute.v2 import server >>> from openstack.test import fakes >>> fakes.generate_fake_resources(server.Server, count=3) <generator object generate_fake_resources at 0x7f075dc65040>
- 参数:
resource_type – 对象类
count – 要返回的对象数量
attrs – 要设置到每个实例中的属性值
- 返回值:
填充了预期类型假值的
resource_type类实例生成器。
- openstack.test.fakes.generate_fake_proxy(service, api_version=None)¶
为给定的服务类型生成一个假的代理
示例用法
>>> import functools >>> from openstack.compute import compute_service >>> from openstack.compute.v2 import server >>> from openstack.test import fakes >>> # create the fake proxy >>> fake_compute_proxy = fakes.generate_fake_proxy( ... compute_service.ComputeService, ... ) >>> # configure return values for various proxy APIs >>> # note that this will generate new fake resources on each invocation >>> fake_compute_proxy.get_server.side_effect = functools.partial( ... fakes.generate_fake_resource, ... server.Server, ... ) >>> fake_compute_proxy.servers.side_effect = functools.partial( ... fakes.generate_fake_resources, ... server.Server, ... ) >>> fake_compute_proxy.servers() <generator object generate_fake_resources at 0x7f92768dc040> >>> fake_compute_proxy.serverssss() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.11/unittest/mock.py", line 653, in __getattr__ raise AttributeError("Mock object has no attribute %r" % name) AttributeError: Mock object has no attribute 'serverssss'. Did you mean: 'server_ips'?
- 参数:
service (
ServiceDescription) – 要生成假代理的服务。api_version (int 或 None) – 要生成假代理的 API 版本。这应该是一个主版本,必须受 openstacksdk 支持,如提供的
service的supported_versions属性中指定。如果 openstacksdk 支持给定服务的多个 API 版本,则只需要此参数。
- 引发:
ValueError – 如果
service不是有效的ServiceDescription,或者如果api_version不受支持- 返回值:
指定服务类型和 API 版本的
Proxy实现的自动规格化模拟