python - 如何保护金字塔注册表免受测试更改?
问题描述
我正在尝试编写合理的pytest夹具来测试大型金字塔应用程序。
我正在尝试做的一件事是加快测试执行的速度是将金字塔 wsgi 应用程序创建为会话夹具而不是测试夹具,因为这种创建相当昂贵,但大多数测试都需要。
但是,如果同时有任何测试与应用程序注册表发生冲突,那么注册表将在接下来的测试运行中一直受到污染,并且这种损坏很难定位,因为它通常表现为一些随机测试的失败,在更远的地方相同的试运行。
因此,我希望能够在夹具拆卸时回滚对注册表的更改,或者在夹具设置上克隆金字塔注册表。
如果有人试图更改锁定的注册表,我可以锁定注册表以引发错误,则可以获得奖励积分。
问题
如何确保始终回到同一个金字塔注册表,同时避免在每次测试运行时创建新的 wsgi 应用程序?
解决方案
注册表没有用于冻结自身的受支持 api。如果需要,您可以对其进行子类化并覆盖一些方法以使其只读,但这肯定有点乏味。诸如 setattr、registerUtility 之类的东西。
推荐阅读
- irc - Irssi 删除默认频道、服务器和网络
- html - HTML 引导代码在 Firefox 上按预期工作,但在 Chrome 上却不行
- sequelize.js - 将新创建的孩子与现有父母相关联的更有效方法?(有很多)
- excel - 比较单元格后查找、复制和粘贴值
- orientdb - OrientDB中如何高效遍历多个顶点
- react-native - 创建我自己的模块时,“模块在 Haste 模块图中不存在”
- javascript - ajax 多次附加一个结果
- jenkins - 当管道有 for 循环时,如何处理管道中的异常?
- android-studio - Kotlin 'when' - 如何在 Android Studio 中获取 lint 警告
- java - java.time.LocalDate 与“营业日期”的即时对比