问题标签 [django-unittest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4643 浏览

python - 如何从视图类测试 Django 重定向

我正在学习 Django atm,我坚持创建一个简单的测试用例。

如何测试以下视图?如果用户已经登录,它会将他重定向到列表视图。

到目前为止,我创建的测试如下所示:

第一个断言通过,但是如果用户已经登录,则应该重定向的第二个断言会引发此错误

我究竟做错了什么?

0 投票
2 回答
3625 浏览

python - django.test.client 在现有 url 上得到 404 错误

我刚开始学习单元测试并遇到了这个问题。

我得到了这样的项目结构(现在是 Django 1.6.2):

在 ./myproject/urls.py 我有:

在 ./myproject/myapp/urls.py 我有:

我编写了基本测试并将其放入 ./test/test_example.py

我像这样从 shell 运行这个测试:

第一次测试运行正常,但第二次测试总是以“404 not found”状态码失败。

两个 url 在浏览器中都可以正常工作。

另外,我试过这个:

我只是不知道如何正确运行这些测试。似乎没有任何模式作为参数传递给视图对我有用。但是 django.test.client 正确找到了所有固定的 url。

谢谢!

编辑:我刚刚在 myproject/myapp/views.py 中发现 404 起火

有一个代码:

这里是 Item.DoesNotExist 异常。我不知道,为什么找不到那个项目?

0 投票
1 回答
1438 浏览

django - django 测试 response.request.user.is_authenticated() 在注销后返回 True

我正在尝试为我的应用程序的身份验证部分编写一些测试,但在检查用户是否登录时遇到了问题。这是代码:

用户填写表单并单击提交,然后收到一封带有验证 URL 的电子邮件。在他单击电子邮件中的验证 URL 后,他应该被定向到该站点并进行身份验证。我的问题是,找出用户是否经过身份验证的好方法是什么?在这种情况下注销用户的首选方法是什么?我想检查用户是否已注销并第二次单击验证链接的链接不起作用。我尝试了一些类似的东西:

但不幸的是,即使我删除了这条线,它似乎每两次工作一次。

谢谢你的帮助!

0 投票
0 回答
97 浏览

django - python mock 是否可以让 django unittest client.session 映射到 request.session?

我有一个单元测试,它访问一个内部 api 并在会话中设置值。

例如。

现在让我测试它:

我的问题是是否可以使用 MagicMock 之类的库来使 self.client.session 隐藏 request.session?

0 投票
1 回答
7442 浏览

python - 验证数组长度相等的 Unittest.TestCase 方法

如何将从 python 命令行声明的变量传递给测试用例实例?编辑:a 和 b 是方法 func() 的输入。

文件名:code.py

我如何将 a 和 b 输入到测试用例中,所以当它们的长度不同时会发生错误?

从终端运行文件时出现以下错误:

0 投票
1 回答
451 浏览

django - 测试期间的 Django WebServer

我正在用 Django 编写一个复杂的 Web 应用程序。有很多组件。特别是两个,是 Django 服务器(我们称之为 this Server)和一个 C++ 应用程序服务器(我们称之为 this Calculator),它为Server. 当想要完成计算时,它会向正在侦听Server的套接字发送命令。Calculator像这样:

现在,Calculator可能在不同的时间需要不同的信息来完成它的工作。因此,与其直接Calaculator在命令中传递数据,Calculator不如询问它需要什么。它通过调用 RESTful API 来做到这一点Server

Calculator然后使用来自此调用的数据进行计算,并以Server答案进行响应。

当我尝试使用 Django 的 unittest 框架进行单元测试时,问题就开始了。我在测试中设置了一堆数据结构,但是当Server调用时Calculator,它需要在 REST API 中提供这些数据,这样Calculator才能得到它需要的东西。问题是 Django 测试框架没有启动网络服务器,如果我手动执行此操作,它会从真实数据库中读取数据,而不是从测试用例中读取数据。

有人知道如何使用提供给外部人员/流程的数据来运行单元测试吗?

我希望这是有道理的...

0 投票
1 回答
347 浏览

python - 在 Django 中模拟来自第三方服务器的响应

我有一个调用函数:

并通过以下方式获取 JSON 列表: [ { id: 1, name: 'abc', }, { id: 2, name: 'def', } ]

然后该函数循环遍历获取的数组中的对象并进行进一步调用

对于测试,我不想调用第三方域 API,而是使用 LISt 和 DETAILS API 的已知响应来伪造它

我怎样才能在 Django 中做到这一点?

0 投票
0 回答
460 浏览

python - Django 测试:未找到来自 setUp 的对象

我在我的 Django 1.7 项目中有这个测试:

在我看来,这意味着在执行测试期间,测试用户应该是数据库的一部分。但是,如果我执行该测试:

不管我使用TestCase 还是TransactionTestCase,用户都不在那里。我遇到了错误还是我做错了什么?

0 投票
5 回答
2948 浏览

python - 如何覆盖单元测试中的 django 应用程序设置?

SimpleTestCase.settings()当通过(https://docs.djangoproject.com/en/1.8/topics/testing/tools/#django.test.SimpleTestCase.settings)运行测试时,Django 允许覆盖设置。当我尝试覆盖 Django 的一项设置时,它工作得很好。

settings.py我要为其运行测试的应用程序在具有以下结构的应用程序特定中携带自己的设置,以允许覆盖项目范围内的特定于应用程序的设置settings.py

测试中的以下虚拟代码显示了该问题:

为什么这不起作用,我怎样才能使它起作用?

0 投票
0 回答
1106 浏览

python - django.db.utils.DatabaseError:(1146,“表'test_xxx.django_content_type'不存在”)

运行 django unittest 时出现以下错误。

请指导我可能做错了什么。

这与 INSTALLED_APPS 的顺序有关吗?