来自收敛模拟器的端口测试

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/heat/+spec/convergence-simulator-tests

问题描述

在设计收敛的过程中,我们构建了一个模拟器,用于验证大量的测试场景。这些场景定义在本质上是一种简单的 DSL 中。如果我们能够对真实的 Heat 代码库运行完全相同的场景,那么我们不仅可以验证我们的收敛实现是否满足模拟器的要求,而且还可以随着时间的推移继续这样做,即使我们添加更多的场景,甚至如果仍然需要快速原型设计更改在模拟器中。

提议的变更

为 RPC API 实现一个桩函数,将消息放入内存队列中,由事件循环耗尽。

实现一种假的资源类型,使用内存存储来表示底层的物理资源。

为场景的全局输入提供包装器 - realityverifyTemplateRsrcDefGetResGetAttengineconverger - 允许它们由 Heat 中的真实等效类支持。

最后,使用 testtools 原语重新实现 https://github.com/zaneb/heat-convergence-prototype/blob/resumable/test_converge.py,并将上述包装器作为全局变量传递,而不是在 https://github.com/zaneb/heat-convergence-prototype/blob/resumable/converge/__init__.py#L24-L41 中定义的那些。

备选方案

实现

负责人

主要负责人

ishant-tyagi

里程碑

完成目标里程碑

Kilo-3

工作项

  • 实现 RPC 桩函数和事件循环

  • 实现假的 TestResource 类型和后端模拟器

  • 实现包装器,将场景 DSL 映射到真实的 Heat 类

  • 实现一个单元测试框架来运行场景

依赖项

当然,在收敛的第一阶段基本完成后,这些测试中的很少一部分会通过。