奥多测试助手

odoo-test-helper的Python项目详细描述


License: AGPL-3https://badge.fury.io/py/odoo-test-helper.svg

odoo test helper是编写odoo测试的工具箱

装载假模型

有时,您会构建一个可供多个模块使用的抽象模块。 在这种情况下,如果你想用真实的记录来测试它,你需要注册真实的模型。在

一种解决方案是创建一个模块测试模块 有一个使用抽象模型的小实现。在

另一个解决方案是定义只测试的模型并将它们加载到测试中。 这个lib使得这成为可能和容易。在

示例

这里有一个测试示例:

此示例从文件加载类ResPartner:

在下面的模块中可以找到真正的实现案例

如何导入

小心导入假类必须以正确的方式完成。 导入一个文件将自动添加“module\u to\u models”中的所有类 变量。导入必须在备份后完成!在

错误的方法

fromodoo.testsimportSavepointCasefromodoo_test_helperimportFakeModelLoader# The fake class is imported here !! It's wrong# And be carefull even if you only import ResPartner# all class in the file models will be proceded by odoo# so no **direct import** of a file that contain fake modelfrom.modelsimportResPartnerclassTestMixin(SavepointCase):@classmethoddefsetUpClass(cls):super(TestMixin,cls).setUpClass()cls.loader=FakeModelLoader(cls.env,cls.__module__)cls.loader.backup_registry()cls.loader.update_registry((ResPartner,))@classmethoddeftearDownClass(cls):cls.loader.restore_registry()super(TestMixin,cls).tearDownClass()deftest_create(self):partner=self.env["res.partner"].create({"name":"BAR","test_char":"youhou"})self.assertEqual(partner.name,"FOO-BAR")self.assertEqual(partner.test_char,"youhou")

正确的方法

^{pr2}$

贡献者

历史

本模块受以下mixin代码的启发,这些代码可以在OCA和shopInventer存储库中找到

最初的作者是

重构/提取由

这个重构器会像Odoo一样,使用完全相同的语法正确加载所有类

请注意,此重构/提取是为了修复以下问题的测试

https://github.com/shopinvader/odoo-shopinvader/pull/607

变更

  • 添加假模块加载器

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取所有链接并使用SeleniumWebDriver逐个单击这些链接   java中数组列表的arraylist移位元素   java如何存储具有不同类型参数的元素   java不能使用List<Future<?>>当从不同位置调用时,在方法参数中   java我应该如何修复代码以避免测试代码出错?   安卓 PreferenceFragment java。lang.RuntimeException   java在运行emulator时发现错误   java取消多个AsyncTask回调的有效方法是什么?如果中途满足条件,这些回调将在将来返回?   有没有办法在运行时将方法动态分配给Java类?   java如何将propertyfile与GlassFish一起使用   如何在PHP中使用bcrypt对密码进行哈希处理?   Java和UDP web服务器   java JPA允许EntityListeners执行JPA操作吗?   java执行do while语句时不会产生错误   java无法在edittext中显示数据库中的数据   java Tomcat中活动会话的数量   java在何处使用@SuppressWarnings(“requestfactory”)   netty连接中的java HornetQ异常