草庐IT

mock_class

全部标签

python - 如何使用 mock 的 @patch 模拟在单独的 Python 模块中定义的函数

我正在尝试使用mock和@patch装饰器为Python应用程序构建测试。给定以下目录结构:|--mypackage||--mymodule|||--__init__.py||\--somefile.py|\--myothermodule||--tests|||--__init__.py||\--test_func_to_test.py|\--__init__.py\--__init__.py文件内容在哪里:#mypackage/mymodule/somefile.pydefsome_function():return'A'#mypackage/myothermodule/__init

python - 修补来自不同模块的多个方法(使用 Python mock)

我的模块结构:foo:-load()#fromDBbar:-check()#withuser-take_action()我想通过模拟加载和检查来测试take_action(基本上加载值并在执行操作之前与用户进行检查)。这是模拟:mock_load=Mock(side_effects=[,,])#differentdatasetsmock_check=Mock(return_value=True)#Userapproval如何使用patch.multiple在Python2.6中实现这一点?withpatch.multiple(??):#proceedtotesttake_action

python - type 是 Python 中所有类的父类(super class)吗?

鉴于type是所有类的父类(superclass),为什么isinstance(1,type)是False?我对这个概念的理解有误吗? 最佳答案 type不是所有类的父类(superclass)。它是所有类(没有自定义元类)的类型。注意区别:>>>isinstance(1,int)True>>>isinstance(1,type)False>>>isinstance(int,type)True数字1不是类型的实例。相反,int类型本身是type的一个实例。编辑:这些例子可能对你有帮助:>>>isinstance(1,int)True

python - PyQt4中自定义WM_NAME和WM_CLASS(如xprop所示)

如何自定义xprop所示的PyQt4程序的字符串WM_NAME和WM_CLASS?例如考虑:fromPyQt4importQtGui,QtCoreimportsysif__name__=='__main__':app=QtGui.QApplication(sys.argv)app.setStyle("plastique")listView=QtGui.QListView()listView.show()combobox=QtGui.QComboBox()combobox.show()sys.exit(app.exec_())如果我通过pythonxprop_test.py运行这个(文件

python : why a method from super class not seen?

我正在尝试实现我自己的DailyLogFile版本fromtwisted.python.logfileimportDailyLogFileclassNDailyLogFile(DailyLogFile):def__init__(self,name,directory,rotateAfterN=1,defaultMode=None):DailyLogFile.__init__(self,name,directory,defaultMode)#whydonotusesuper.here?lisibilitymaybe?#self.rotateAfterN=rotateAfterNdefsh

python - 如何模拟缺失的属性

我有一行代码是:ifnothasattr(class.a,u'c'):return如何模拟类以便class.a.c为hasattr返回False?如果我这样做:>>>frommockimportMagicMock>>>mock_class=MagicMock(spec=[u'a'])>>>hasattr(mock_class,u'a')True>>>hasattr(mock_class,u'b')False>>>hasattr(mock_class.a,u'c')True虽然我没有指定class.a.c,但它被mock了!!! 最佳答案

Python abc 模块 : Extending both an abstract base class and an exception-derived class leads to surprising behavior

扩展抽象基类和派生自“对象”的类的工作方式与您预期的一样:如果您尚未实现所有抽象方法和属性,则会出现错误。奇怪的是,用扩展“异常”的类替换对象派生类允许您创建不实现所有必需的抽象方法和属性的类的实例。例如:importabc#ThesuperclassesclassmyABC(object):__metaclass__=abc.ABCMeta@abc.abstractpropertydeffoo(self):passclassmyCustomException(Exception):passclassmyObjectDerivedClass(object):pass#Mixthemin

Python unittest : to mock. patch() 或者只是用 Mock 替换方法?

在Python中编写单元测试时模拟类或方法时,为什么需要使用@patch装潢师?我可以在没有任何补丁注释的情况下用Mock对象替换该方法。例子:classTestFoobar(unittest.TestCase):defsetUp(self):self.foobar=FooBar()#1)Withpatchdecorator:@patch.object(FooBar,"_get_bar")@patch.object(FooBar,"_get_foo")deftest_get_foobar_with_patch(self,mock_get_foo,mock_get_bar):mock_g

SpringBoot整合elasticsearch可能出现的版本不一致问题导致报错Failed to introspect Class

*java.lang.IllegalStateException:Errorprocessingconditiononorg.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataConfiguration$BaseConfiguration.mappingContext atorg.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:60)~[spring-boo

python3 : bind method to class instance with . __get__(),它有效,但为什么呢?

我知道如果你想给一个类实例添加一个方法你不能像这样做一个简单的赋值:>>>defprint_var(self):#methodtobeaddedprint(self.var)>>>classMyClass:var=5>>>c=MyClass()>>>c.print_var=print_var这确实会导致print_var表现得像一个普通函数,所以self参数不会有他的典型含义:>>>c.print_var>>>c.print_var()Traceback(mostrecentcalllast):File"",line1,inc.print_var()TypeError:print_va