async def test_param(self): desktop = await respool.first_desktop(desktop_status=DesktopStatus.RUNNING, charge_type='PrePaid') async with desktop: await self._test_api( api_=Desktop().api_DescribeRefundPrice, refund_type=ParamSchema( valid_values=[None, 'RemainRefund'], invalid_values=['invalid@无效'], error_codes=['InvalidRefundType.ValueNotSupported'] ), refund_param_map=ParamSchema( valid_values=[None, '{ "IsChargeTypeConvertOrder":"true","refundNotRelease":"true","refundNotFinishPurchase":"true" }'], invalid_values=['invalid@无效'], error_codes=['InvalidRefundPriceParamType.ValueNotSupported'] ), desktop_id__1=ParamSchema( valid_values=[desktop.desktop_id], invalid_values=[None, 'invalid@无效'], error_codes=['MissingDesktopId', 'InvalidDesktopId.ValueNotSupported'] ) )
时间: 2024-02-15 17:26:42 浏览: 20
这段代码是一个方法,用于测试Desktop类的api_DescribeRefundPrice方法的参数。其中,首先通过respool.first_desktop方法获取一个运行中且计费方式为PrePaid的桌面对象,然后使用async with语句将桌面锁定,避免其他协程同时对其进行操作。接着,使用_test_api方法对api_DescribeRefundPrice的三个参数进行测试:refund_type,refund_param_map和desktop_id__1。其中,ParamSchema定义了每个参数的有效值、无效值和对应的错误代码,目的是验证api_DescribeRefundPrice方法对参数的处理是否符合预期。
相关问题
async def test_param(self): users = await respool.first_user() await self._test_api( api_=User().api_BatchSetDesktopManager, users__1=ParamSchema( valid_values=[users[0].end_user_id], invalid_values=[None], error_codes=['MissingUsers'] ), is_desktop_manager=ParamSchema( valid_values=[0, 1, None], invalid_values=['invalid@无效'], error_codes=['ServiceUnavailable'] ) )
这段代码看起来像是 Python 语言编写的异步函数,其中调用了名为 `respool` 的对象的 `first_user()` 方法获取第一个用户,并将其传给 `_test_api()` 方法进行测试。`_test_api()` 方法接受多个参数,包括名为 `api_` 的参数,表示待测试的 API 方法,以及名为 `users__1` 和 `is_desktop_manager` 的参数,它们分别表示用户 ID 和桌面管理器参数。这些参数都传递给了 `ParamSchema` 类的实例,该实例包含了这些参数的有效值、无效值以及可能出现的错误代码。
desktops = await respool.new_desktop(desktop_status=DesktopStatus.RUNNING) desktop = desktops[0] async with desktop: await sleep(60) snapshot_system = await Snapshot.create(desktop_id=desktop.desktop_id, source_disk_type=SnapshotSourceDiskType.System, wait=True) snapshot_data = await Snapshot.create(desktop_id=desktop.desktop_id, wait=True) assert snapshot_system.snapshot_id assert snapshot_data.snapshot_id # 通过snapshot_id删除快照 await Snapshot.delete(snapshot_ids=[snapshot_system.snapshot_id, snapshot_data.snapshot_id]) snapshots = await Snapshot.describe(desktop_id=desktop.desktop_id) # 防止创建时间太长有自动快照的生成 result = [sna for sna in snapshots if sna.snapshot_type == SnapshotType.User] assert len(result) == 0
这段代码的作用是创建一个新的虚拟桌面,等待 60 秒后创建两个快照(一个系统快照和一个数据快照),然后检查这两个快照是否创建成功。接着,使用快照 ID 删除这两个快照,并检查是否删除成功。最后,检查是否还有自动快照存在。如果没有自动快照存在,则表示代码执行成功。
需要注意的是,这段代码中的 `await respool.new_desktop(desktop_status=DesktopStatus.RUNNING)` 用于创建一个运行中的虚拟桌面,并将其赋值给 `desktops` 变量。然后,使用 `desktops[0]` 获取第一个虚拟桌面,并将其赋值给 `desktop` 变量。接着,使用 `async with desktop:` 异步上下文管理器来确保在代码块执行期间保持对虚拟桌面的独占访问权限。