Python中文
首页
教程
问答
标签
搜索
登录
注册
Python mock Patch os.environ和return valu
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>使用mock对conn()进行单元测试:</p> <p>应用程序.py</p> <pre><code>import mysql.connector import os,urlparse def conn(): if 'DATABASE_URL' in os.environ: url=urlparse(os.environ['DATABASE_URL']) g.db = mysql.connector.connect(user=url.username,password=url.password, host=url.hostname,database=url.path[1:]) else mysql.connector.error.Errors as err: return "Error </code></pre> <p>测试.py</p> <pre><code>def test_conn(self): with patch(app.mysql.connector) as mock_mysql: with patch(app.os.environ) as mock_environ con() mock_mysql.connect.assert_callled_with("credentials") </code></pre> <p>错误:<em>未调用断言</em><code>mock_mysql.connect.assert_called_with</code>。</p> <p>我相信这是因为'Database_url'不在我的补丁os.environ中,也因为这个测试调用没有对mysql_mock.connect进行。</p> <p>问题:</p> <p>1我需要做哪些更改才能使此测试代码工作?</p> <p>2.我还需要修补“urlparse”吗?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您还可以使用本<a href="https://stackoverflow.com/a/34333710/1513933">question</a>中描述的<code>modified_environ</code>上下文管理器来设置/还原环境变量。</p> <pre><code>with modified_environ(DATABASE_URL='mytemp'): func() </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django restfram生成PDF
7 回答
无法使用Django Rest框架发送压缩的gzip数据
9 回答
无法使用Django rest框架进行身份验证(请求用户=匿名用户)
6 回答
无法使用Django、Python和JavaScrip触发onclick函数
7 回答
无法使用Django.views.generic.View保存表单
6 回答
无法使用Django(python 2.7,OS X 10.11.1)
10 回答
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
9 回答
无法使用Django\u mssql\u后端迁移到外部hos
8 回答
无法使用Django&Python3.4连接到MySql
4 回答
无法使用Django+nginx上载媒体文件
8 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
10 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
4 回答
无法使用Djangockedi验证CBV中的字段
9 回答
无法使用Djangocketditor上载图像(错误400)
6 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
1 回答
无法使用Djangokronos
10 回答
无法使用Djangomssql provid
5 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答