草庐IT

python - 访问实例属性时修补类会产生 "AttributeError: Mock object has no attribute"

问题将mock.patch与autospec=True一起使用来修补类不会保留该类实例的属性。详情我正在尝试测试一个类Bar,它将类Foo的实例实例化为名为foo的Bar对象属性.被测的Bar方法叫做bar;它调用属于Bar的Foo实例的方法foo。在测试这一点时,我正在模拟Foo,因为我只想测试Bar是否正在访问正确的Foo成员:importunittestfrommockimportpatchclassFoo(object):def__init__(self):self.foo='foo'classBar(object):def__init__(self):self.foo=Foo

python - 访问实例属性时修补类会产生 "AttributeError: Mock object has no attribute"

问题将mock.patch与autospec=True一起使用来修补类不会保留该类实例的属性。详情我正在尝试测试一个类Bar,它将类Foo的实例实例化为名为foo的Bar对象属性.被测的Bar方法叫做bar;它调用属于Bar的Foo实例的方法foo。在测试这一点时,我正在模拟Foo,因为我只想测试Bar是否正在访问正确的Foo成员:importunittestfrommockimportpatchclassFoo(object):def__init__(self):self.foo='foo'classBar(object):def__init__(self):self.foo=Foo

Python mock 修补另一个函数调用的函数

deff1():return10,Truedeff2():num,stat=f1()return2*num,stat如何使用python的模拟库修补f1()并返回自定义结果以便我可以测试f2()?已编辑:我的测试有问题吗?这似乎不起作用,所有测试都因AssertionError而失败fromfoo.barimportf2frommockimportpatchclassMyTest(TestCase):deftest_f2_1(self):withpatch('project.module.f1')assome_func:some_func.return_value=(20,False)

Python mock 修补另一个函数调用的函数

deff1():return10,Truedeff2():num,stat=f1()return2*num,stat如何使用python的模拟库修补f1()并返回自定义结果以便我可以测试f2()?已编辑:我的测试有问题吗?这似乎不起作用,所有测试都因AssertionError而失败fromfoo.barimportf2frommockimportpatchclassMyTest(TestCase):deftest_f2_1(self):withpatch('project.module.f1')assome_func:some_func.return_value=(20,False)

python - 如何在单元测试的类方法中模拟 python 的 datetime.now()?

我正在尝试为具有以下方法的类编写测试:importdatetimeimportpytzclassMyClass:defget_now(self,timezone):returndatetime.datetime.now(timezone)defdo_many_things(self,tz_string='Europe/London'):tz=pytz.timezone(tz_string)localtime_now=self.get_now(tz)...returnthings我想对其进行测试,为此我需要确保datetime.datetime.now()调用返回可预测的内容。我已经阅读

python - 如何在单元测试的类方法中模拟 python 的 datetime.now()?

我正在尝试为具有以下方法的类编写测试:importdatetimeimportpytzclassMyClass:defget_now(self,timezone):returndatetime.datetime.now(timezone)defdo_many_things(self,tz_string='Europe/London'):tz=pytz.timezone(tz_string)localtime_now=self.get_now(tz)...returnthings我想对其进行测试,为此我需要确保datetime.datetime.now()调用返回可预测的内容。我已经阅读

python mock side_effect 或 return_value 取决于 call_count

为了测试一个轮询函数,我想模拟一个子函数的调用,这样第一次调用它就会失败,第二次调用它就会成功。这是它的一个非常简化的版本:poll_function(var1):value=sub_function(var1)#FirstcallwillreturnNonewhilenotvalue:time.sleep(POLLING_INTERVAL)value=sub_function(var1)#Asubsequentcallwillreturnastring,e.g"data"returnvalue这可能与mock框架中的Mock对象有关吗?我知道Mock对象有一个call_count属性

python mock side_effect 或 return_value 取决于 call_count

为了测试一个轮询函数,我想模拟一个子函数的调用,这样第一次调用它就会失败,第二次调用它就会成功。这是它的一个非常简化的版本:poll_function(var1):value=sub_function(var1)#FirstcallwillreturnNonewhilenotvalue:time.sleep(POLLING_INTERVAL)value=sub_function(var1)#Asubsequentcallwillreturnastring,e.g"data"returnvalue这可能与mock框架中的Mock对象有关吗?我知道Mock对象有一个call_count属性

Python:模拟上下文管理器

我不明白为什么我不能在这个例子中模拟NamedTemporaryFile.name:frommockimportMock,patchimportunittestimporttempfiledefmyfunc():withtempfile.NamedTemporaryFile()asmytmp:returnmytmp.nameclassTestMock(unittest.TestCase):@patch('tempfile.NamedTemporaryFile')deftest_cm(self,mock_tmp):mytmpname='abcde'mock_tmp.__enter__.r

Python:模拟上下文管理器

我不明白为什么我不能在这个例子中模拟NamedTemporaryFile.name:frommockimportMock,patchimportunittestimporttempfiledefmyfunc():withtempfile.NamedTemporaryFile()asmytmp:returnmytmp.nameclassTestMock(unittest.TestCase):@patch('tempfile.NamedTemporaryFile')deftest_cm(self,mock_tmp):mytmpname='abcde'mock_tmp.__enter__.r