Python中文
首页
教程
问答
标签
搜索
登录
注册
Django补丁的副作用IntegrityError未引发
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有以下视图,除了POST请求,并序列化一个对象数据(Draftschedule)来创建一个新的副本(FrozenSchedule):</p> <pre><code>from reports.tasks import create_frozen_schedule def freeze_schedule(request, pk): """Valid post request will freeze a Draft Schedule serializing its data""" client = get_object_or_404(Client, draftschedule=pk) try: # Serialize data into a FrozenSchedule object frozenschedule = create_frozen_schedule(pk, request.user.id) except IntegrityError: # Warn user if action failed messages.warning(request, "A Schedule of this Type already exists") return redirect(client.draftschedule) else: # If Schedule is Frozen successfully messages.success(request, "Schedule Frozen") return redirect(frozenschedule) </code></pre> <p>我试图编写一个测试来断言在IntegrityError被引发后发生的某些事情。我正在努力理解它为什么会失败,因为我对嘲弄/修补相当缺乏经验,所以我不太清楚我到底哪里出了问题。在</p> <p>我试图模拟<code>create_frozen_schedule</code>函数,以便在调用时引发IntegrityError:</p> ^{pr2}$ <p>但最后我得出了以下错误:</p> <pre><code>.......................................................................................F............ ====================================================================== FAIL: test_freeze_schedule_with_conflict (reports.tests.test_views.TestFreezeSchedule) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.4/unittest/mock.py", line 1136, in patched return func(*args, **keywargs) File "/home/jwe/piesup2/reports/tests/test_views.py", line 495, in test_freeze_schedule_with_conflict self.client.post(self.url) AssertionError: IntegrityError not raised ---------------------------------------------------------------------- </code></pre> <p>注意事项:</p> <ul> <li>我可以在我实际的Django站点的测试之外复制这个错误。在</li> <li>我故意省略了<code>create_frozen_schedule</code>代码,因为 连载是相当冗长的,据我所知 实现细节无论如何都不重要,因为我在嘲笑 功能。在</li> <li><p>IntegrityError本身的目的是防止重复的<code>FrozenSchedule</code>对象,其元类如下所示:</p> <pre><code>class Meta: # ... unique_together = ('client', 'data',) </code></pre></li> </ul> <p>你知道为什么没有引起副作用吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>视图捕捉IntegrityError并返回重定向。测试调用的客户端post根本不会引发错误。在</p> <p>相反,您应该测试except块中的操作是否发生:是否设置了警告,post是否重定向到草稿计划而不是冻结的计划。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
2 回答
如何添加表示整数的擦边字符串?
9 回答
如何添加要在Bokeh中使用的新font.ttf文件?
2 回答
如何添加要显示的矩阵XY轴编号和XY轴
2 回答
如何添加计数?
2 回答
如何添加计数器函数?
5 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
8 回答
如何添加计数器来跟踪while循环中的月份和年份?
7 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
3 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
8 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
9 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
10 回答
如何添加谷歌地点自动完成到Flask?
4 回答
如何添加超时、python discord bot
1 回答
如何添加超过1dp的检查
2 回答
如何添加距离方法
1 回答
如何添加跟随游戏的敌人精灵
3 回答
如何添加路径以便python可以找到程序?
5 回答
如何添加身份验证/安全性以使用happybase访问HBase?
1 回答