在所有测试中修补多个模块变量

时间:2016-06-21 07:05:48

标签: python python-2.7 pytest

我有一个带有两个模块变量的模块。我想在我的文件中将它们用于所有测试。最初我做了猴子修补,但这对于其他文件中的测试来说是一个问题,需要这些变量完好无损。 这是我目前提出的。它太可怕但它确实有效。我希望通过这本书来做更多的事情"虽然(即对我修补的所有变量保留一个缩进的东西):

{{1}}

1 个答案:

答案 0 :(得分:0)

  

但我觉得这样做的正确方法是保留一个缩进。

使用包含多个上下文的语句

您可以将多个语句放入单个with

with patch.object(my_module, 'old_first_variable', new=new_first_variable), patch.object(my_module, 'old_second_variable', new=new_second_variable):
    # your code here, single indent

带有多个上下文的语句,跨越多行

显然你的线路可以变得很长,这是一种打破它们的方法仍然符合PEP8

with patch.object(my_module, 'old_first_variable', new=new_first_variable), \
     patch.object(my_module, 'old_second_variable', new=new_second_variable), \
     patch.object(my_module, 'old_third_variable', new=new_third_variable):
    # Your code here, single indent
    pass

我在带有上述代码段的文件上运行pep8,然后通过。