Python
是否可以使用 unittest.mock 在 python 中模拟模块?我有一个名为 config 的模块,在运行测试时我想通过另一个模块 test_config 来模拟它.我怎样才能做到这一点 ?谢谢. config.py: CONF_VAR1 = "VAR1"CONF_VAR2 = "VAR2" test_config.py: CONF_VAR1 = "test_VAR1"CONF
..
我想在 python 中伪造一个包.我想定义一些东西以便代码可以做 from somefakepackage.morefakestuff import somethingfake somefakepackage 是在代码中定义的,它下面的所有内容也是如此.那可能吗?这样做的原因是为了欺骗我的单元测试,我在 python 路径中得到了一个包(或者正如我在标题中所说,一个模块),这实际上只是为这个
..
我在测试 Django 应用程序时尝试模拟一些东西,使用富有想象力的名称 模拟测试库.我似乎无法让它工作,我正在尝试这样做: models.py从 somelib 导入 FooClass类促销(models.Model):foo = models.ForeignKey(FooClass)定义栏(自我):print "做我不想做的事!"测试.py类 ViewsDoSomething(TestCas
..
使用模拟单元测试 conn(): app.py import mysql.connector导入操作系统,urlparse定义连接():如果“DATABASE_URL";在 os.environ 中:url = urlparse(os.environ["DATABASE_URL"])g.db = mysql.connector.connect(用户=url.用户名,密码=url.密码,主机
..
是否有一种干净的方法来修补对象,以便在测试用例中获得 assert_call* 帮助程序,而无需实际删除操作? 例如,如何修改 @patch 行以使以下测试通过: from unittest import TestCase从模拟导入补丁土豆类(对象):def foo(self, n):返回 self.bar(n)定义栏(自我,n):返回 n + 2类 PotatoTest(TestCase
..
我应该如何自定义 unittest.mock.mock_open 来处理这段代码? 文件:impexpdemo.pydef import_register(register_fn):使用 open(register_fn) 作为 f:return [f 中的一行] 我的第一次尝试尝试了 read_data. 类 TestByteOrderMark1(unittest.TestCase):RE
..
你最喜欢的 Python 模拟库是什么? 解决方案 我只用过一个,但是用 Michael Foord 的 Mock 效果很好:http://www.voidspace.org.uk/python/mock/. Michael 的介绍比我说得好: 已经有几个 Python 模拟库可用,为什么还要另外一个? 大多数模拟库都遵循'记录->重播"的嘲讽模式.我更喜欢'动作->as
..
我需要测试使用 datetime.datetime.now() 的函数.最简单的方法是什么? 解决方案 你需要monkeypatch datetime.now 函数.在下面的示例中,我正在创建可以稍后在其他测试中重复使用的夹具: 导入日期时间导入pytestFAKE_TIME = datetime.datetime(2020, 12, 25, 17, 5, 55)@pytest.fixt
..
我需要测试一个需要使用 urllib.urlopen 查询外部服务器上的页面的函数(它也使用 urllib.urlencode).服务器可能已关闭,页面可能会更改;我不能依赖它进行测试. 控制 urllib.urlopen 返回什么的最佳方法是什么? 解决方案 另一个简单的方法是让你的测试覆盖 urllib 的 urlopen() 函数.例如,如果您的模块有 导入urllibdef
..
假设我有这个 python 代码: def 答案():ans = raw_input('输入是或否')如果 ans == '是':print '你输入的是'如果 ans == '否':print '你输入的不是' 如何为此编写单元测试?我知道我必须使用“模拟",但我不明白如何.谁能举个简单的例子? 解决方案 你不能给输入打补丁,但是你可以把它包装起来使用 mock.patch().这是
..
如何使用 unittest.mock: def testme(文件路径):打开(文件路径)为 f:返回 f.read() 解决方案 mock 0.7.0 改变了这样做的方式,最终支持模拟 python 协议方法(魔术方法),特别是使用 MagicMock: http://www.voidspace.org.uk/python/mock/magicmock.html 作为上下文管理
..
谁能告诉我为什么这不起作用? >>>进口模拟>>>@mock.patch('datetime.date.today')...今天的定义(cls):... 返回日期(2010, 1, 1)...>>>从日期时间导入日期>>>日期.今天()datetime.date(2010, 12, 19) 也许有人可以提出更好的方法? 解决方案 有几个问题. 首先,您使用 mock.patch
..
我正在尝试显示来自 1394 相机的实时图像.目前,我的代码能够从相机循环获取图像,并且我正在寻找任何可以动态更新的快速 GUI(作为单独的线程).我可以在 PyQt 中做到这一点,也许使用 QThreads 但有什么建议或更快的方法吗?这是我的代码 #循环从相机捕捉帧 范围内的帧(1,500):打印'框架:',框架TIME.sleep(1) #每秒捕获帧image_binary = py
..
我需要一个 uEye 相机 在 Windows 上使用 python 来拍照和操作直播. 由于 uEye 相机是广泛使用的工业相机,我认为有一个标准的解决方案;但是,我找不到任何东西.解决方案需要在 Windows XP 或 Windows 7 上的 python 2.7 下运行. 如果有人在 Windows 上的 python 中成功使用了 uEye 相机,我将不胜感激,分享他在这个问题
..
我正在 python 中尝试使用 openCV,我制作了一个简单的网络摄像头,它只会以黑白显示,但我想知道是否有可能以某种方式将它与不和谐联系起来,所以每当我打电话给朋友时,他看到我是黑色的和白色.` 导入 cv2捕获 = cv2.VideoCapture(0)捕获.set(3, 640)捕获.set(4, 480)捕获.set(10, 300)而真:成功,img = capture.read(
..
我有一个 python 脚本,它使用 calibratecamera2 方法从棋盘的几个视图中校准相机.成功校准后,我会追踪所有原始点并绘制一些图并再次计算重投影误差.令我惊讶的是,opencv 计算的重投影误差和我的有点不同.我觉得很奇怪.我是否以错误的方式计算它? obj_points = []# 现实世界空间中的 3d 点.数组列表img_points = []# 图像平面中的 2d 点.
..
我正在尝试使用 OAuth2 对用户进行身份验证并访问资源.但是,我在这样做时遇到了一些问题.以下是详细信息. 我已在 Azure 门户上将应用注册为 Web Api 我想编写一个 python 脚本,通过它我可以请求授权码,然后是访问令牌 挑战: 我没有重定向网址.我不确定我可以在这里使用什么 当我使用链接在浏览器中获取授权码时,它要求我登录 Azure.如何确保它也要求我
..
我正在用 Python 构建一个可以从 Azure AD 检索数据的应用程序.此数据可能需要应用程序权限或委托权限.我成功检索了只需要应用程序权限的数据.但是,为了检索需要委托权限的数据,我正在尝试使用 OAuth2.是否可以使用 OAuth2 通过 Microsoft Graph 进行身份验证,但不让用户使用网页登录,而是通过 Python 脚本本身提供用户凭据? 注意:我想使用 Micr
..
我正在查看 Microsoft 文档 这里 和 这里,我在 Azure Active Directory 中创建了 Web 应用程序来访问 Data Lake Store 在 Web 应用中,我有 Object ID、Application ID 和 Key 查看我看到的文档: adlCreds = lib.auth(tenant_id = 'FILL-IN-HERE', clien
..
我正在尝试使用带有路径转换器的简单路由来获取 Flask: @api.route('/records///') 除非 URL 的“路径"部分使用前导斜杠,否则它会起作用.在这种情况下,我得到一个 404.我理解该错误,但我没有得到的是文档中或 Internet 上的任何地方都没有关于如何解决此问题的解决方法.我觉得我是第一个尝试做
..