Django 验证单元测试

2024-02-08

我试图模拟 django.contrib.auth 验证方法的返回值,该方法在视图的登录方法中调用。

有view.py代码:

def login(request): 
    if request.method == 'POST': 
            username = get_username(request.POST.get('email')) 
            password = request.POST.get('password') 

            user = authenticate(username=username, password=password) 

            if user: 
                    if user.is_active: 
                            if not request.POST.get('remember_me', None): 
                                    request.session.set_expiry(0) 
                            auth_login(request, user) 
                            return redirect('/') 
                    else: 
                            return redirect('/') # some error page 
            else: 
                    return redirect('/') # error again 
    else: 
            return render(request, 'auth/login.html') 

以及 test.py 代码:

from django.contrib import auth
...
@patch.object(auth, 'authenticate')
def test_login_missing_user(self, mock_auth):
    request = self.request_factory.post('', data={'email': u'[email protected] /cdn-cgi/l/email-protection', 'password': u'PA$$WORD'})
    self.assertIsInstance(login(request), HttpResponse) #this test PASSES

    user = User.objects.create_user('test_user', '[email protected] /cdn-cgi/l/email-protection', 'test_password')

    mock_auth.return_value = True
    login(request)
    self.assertTrue(mock_auth.called)

最后一个断言失败并出现 AssertionError: False is not true


你正在修补错误的东西:你所做的只是改变什么authenticate指的是您的测试中,而不是视图中。你应该打补丁your_view.auth.authenticate.

请参阅模拟文档哪里打补丁 http://mock.readthedocs.org/en/latest/patch.html#where-to-patch.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 验证单元测试 的相关文章

随机推荐

  • 禁用 UIWebView 中特定 HTML 元素的数据检测器

    有谁知道是否可以仅针对特定的 HTML 元素禁用 UIWebView 中电话号码 电子邮件地址等的数据检测器 我希望检测器对于加载到 UIWebView 中的大部分内容都处于活动状态 但在某些区域禁用它 如果这是可能的 我假设它可以通过在加
  • 我的 AVPlayer 的内存在哪里?如何取回它?

    我正在同时播放大量视频AVPlayer 为了减少加载时间 我将相应的视图存储在NSCache 这种方法效果很好 直到达到一定数量的视频 视频就会停止播放 甚至不再出现 没有错误 日志或内存警告 特别是 我正在听UIApplicationDi
  • Fedora 19 上的 Metasploit msfconsole method_missing

    我使用以下命令在 Fedora 19 上安装了metasploit这份来自 Fedora 的指南 http fedoraproject org wiki Metasploit 完成我运行的所有步骤后微软控制台并得到以下错误 usr loca
  • nfsnobody 用户权限

    我已经在两台 CentOS 6 64 机器之间设置了 NFS 文件共享 在服务器上 共享的文件夹最初由 root 用户拥有 在客户端上 它显示为 nfsnobody 所有 当我尝试从客户端写入该文件夹时 出现权限错误 因此 我将服务器上的文
  • 将 google plus 登录添加到 ionic 应用程序

    我正在尝试将 google plus 登录添加到我的ionic app 点击此链接后出现错误 https ionicthemes com tutorials about google plus login with ionic framew
  • 推荐一个适合偶尔使用的好的实体关系图构建工具? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 免费软件是一个优点 您能否用一句话描述一下为什么它应该足够适合偶尔使用 编辑 你可能会检查这个很酷link http www refere
  • TCP握手可靠性

    我其实想知道 在 TCP 握手中 为什么客户端需要 ack 返回来完成握手 在syn和syn ack之后 双方都有足够的信息来启动数据 tcp仍然要求客户端的ack移动到已建立的状态 问题是 为什么这种三向握手是实现可靠性的必要和充分条件
  • 下划线覆盖 NSAttributedString 中的文本

    我正在尝试创建一个属性字符串 但下划线覆盖了我的文本 而不是出现在它后面 有没有办法来解决这个问题 我正在使用以下代码 let paragraphStyle NSMutableParagraphStyle paragraphStyle li
  • 将 IP 地址输入 EC2 安全组规则时应使用什么格式?

    我正在尝试配置从堡垒主机 位于公共子网中 到同一 VPC 中的私有 linux 实例 位于私有子网中 的安全 ssh 连接 当我为我的私有 Linux 实例添加安全组规则时 最初它显示的规则为 请注意 在添加堡垒主机的 IP 地址之前 水印
  • CSS居中技巧[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Jquery 选择元[property=og:image]?

    我想在 Jquery 中选择网页中的主照片 我只有 url 页面 所以我决定使用为 Facebook 共享编写的元 我想选择的内容 元属性 og 图像 内容 http blablabla jpg 我写了这个 但它不起作用 meta prop
  • 在状态数组中添加值的最佳方法是什么

    我有一个状态数组 比方说this state arr 我想向这个状态属性添加一些内容 然后更改更多属性 Option 1 onChange event this state arr push newvalue this setState s
  • 使用 jQuery 将自定义 CSS 类添加到动态创建的元素

    让我说明一下我的问题 我有一个外部 JavaScript 库 它可以根据用户输入和交互动态地为我创建某些 HTML 元素 并且我希望编写一个脚本来自动将某个类添加到这些动态创建的元素中 假设我也无法编辑我正在使用的外部 JavaScript
  • 你可以在 Swift 字符串插值中使用字符串/字符文字吗?

    是否可以在 Swift 中的字符串插值中使用字符串 字符文字 语言参考说 在内插字符串的括号内编写的表达式不能包含未转义的双引号 这对我来说有点模糊 因为它似乎故意留下转义双引号的漏洞 如果我尝试 println Output repeat
  • 我试图编写一个包含二次公式的程序,但我不明白为什么我不断收到错误[重复]

    这个问题在这里已经有答案了 import math a float input Enter value for a b float input Enter value for b c float input Enter value for
  • 创建新的 Hibernate 表

    所以我对 Hibernate 还很陌生 而且我正在开发一个大型应用程序 该应用程序已经有一个包含多个 Hibernate 表的数据库 我正在开发一项新功能 其中包括一个新功能 Entity类 我需要将这些对象存储在一个新表中 该类声明如下
  • 如何在Jenkins中使用ANSIcolor插件?

    我已经为 Jenkins 安装了 ANSI color 插件 在作业中 我已使用默认配置文件 xterm 激活了该插件 我不知道打印到控制台日志时如何对控制台日志的输出进行着色 来自批处理文件的日志 Windows 平台 有关的文档 htt
  • 作为 OpenShift 用户,我可以做什么?

    我目前正在使用虚拟服务器并想尝试一下开放式班次 http openshift redhat com 出去 但我还没有真正了解它是如何工作的 我可以获得我的 网络空间 的 root 访问权限吗 我可以设置服务器操作系统 例如 Debian 7
  • 当从 Java 查询时,Sql Server 会忽略 varchar 列上的索引并进行表扫描

    问题 我有一个 SQL Server 表 其中有一个 varchar 列和数百万行 它已建立索引 从 SQL Server 查询工具中运行查询速度很快 因为它使用索引 当我从 Java JDBCPreparedStatement 运行查询时
  • Django 验证单元测试

    我试图模拟 django contrib auth 验证方法的返回值 该方法在视图的登录方法中调用 有view py代码 def login request if request method POST username get usern