问题标签 [django-testing]

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 回答
2137 浏览

django-forms - GET Formset 返回 302 而不是 200 (django)

我用的是inlineformset,views方法如下:

我已经成功测试了 inlineformset 的“post”方法。这是代码。

我使用 get 方法尝试了以下操作:

但这不起作用。我没有得到 status_code=200,而是得到了 status_code=302。为什么?也许我需要指定 GET 方法的总表格?

任何帮助都非常感谢!谢谢!

如果需要更多信息,请发表评论,然后我将粘贴所需的信息。

0 投票
1 回答
279 浏览

python - 应该在 Django 中编写什么样的测试

假设我有一个 Djano 应用程序。用户可以注册,获取激活邮件,激活他们的帐户并登录。登录后,用户可以通过使用 Manager 处理模型的自定义表单创建、更新和删除对象。

我应该在这里测试什么——我应该使用请求框架发出请求并通过 Views 和 Forms 测试整个链,还是应该编写单元测试来测试 Manager 和 Model?

在测试整个链时,我看到 URL 配置正确,视图按预期工作,表单正确清理数据,它还会测试模型和管理器。似乎 Django 测试框架比这种测试更适合单元测试。(这是应该用 Twill 和 Selenium 测试的东西吗?)

在编写单元测试时,我会测试 Manger 和 Models,但 URL 和 Forms 并没有真正发挥作用,是吗?!

一个非常基本的问题,但我想让一些基本面正确。

谢谢大家。

0 投票
3 回答
62115 浏览

python - 我应该如何在 Django 中为表单编写测试?

当我编写测试时,我想在 Django 中模拟对我的视图的请求。这主要是为了测试表格。这是一个简单的测试请求的片段:

无论是否存在表单错误,该页面始终返回 200 响应。如何检查我的表单是否失败以及特定字段 ( soemthing) 是否有错误?

0 投票
9 回答
23443 浏览

python - 模拟 Django 查询集以测试采用查询集的函数

我的 Django 项目中有一个实用函数,它接受一个查询集,从中获取一些数据并返回一个结果。我想为这个函数写一些测试。无论如何“模拟”一个查询集?我想创建一个不接触数据库的对象,我可以为它提供一个要使用的值列表(即一些假行),然后它就像一个查询集一样,并允许某人对其进行字段查找/过滤/获取/全部等。

这样的事情已经存在了吗?

0 投票
1 回答
2947 浏览

python - 使用 assertRaises 的 Django 测试未能意识到引发的异常是预期的异常

我有以下测试代码片段

测试失败:

我不明白为什么引发的异常与我传入的异常不同assertRaises

manage.py test game我使用with运行代码,使用tests.py我的文件旁边的models.py文件wotw_project.game

我对这个问题的研究表明,导入可能存在问题(即文件与导入的同一文件不同)。但是我使用标准方法来运行单元测试,所以我不明白为什么这对我来说是个问题,当然其他人已经在 Django 中使用了 assertRaises!

0 投票
1 回答
85 浏览

python - 在 Django TestClient 中使用默认值发回表单

我正在为 Django 中的某些表单编写一些测试。这些表单经常更改,因此我试图避免将表单参数硬编码到我的测试中,因为每次我的表单更改时,我也必须修改测试。我有很多这种性质的形式。我主要是测试信息是否正确存储在正确的表中,而无需真正关心每个表单字段。

使用 Django TestClient,有没有一种方法可以获取带有表单的页面,然后使用提交的默认表单字段值将其发回?

我已经用谷歌搜索了这个但无济于事。

有帮助吗?谢谢。

0 投票
2 回答
155 浏览

python - 在 Django 中,为什么我需要将站点名称添加到 tests.py 中的导入中?

我已经在 中进行了一些单元测试mysite/vncbrowser/tests.py,并且可以使用以下命令运行它们:

tests.py中,我使用以下命令导入模型类:

...并使用以下测试测试将 anInteger3D插入自定义字段类型:

但是,当我使用 运行测试时python manage.py test vncbrowser,我发现源代码检查失败isinstance(value, Integer3D)models.py似乎在文件中,对(在该文件前面定义的)models.py的裸引用具有 full name ,而从测试传入的对象具有 full name 。Integer3Dvncbrowser.models.Integer3Dmysite.vncbrowser.models.Integer3D

models.py一些调试语句的相关代码是:

...产生此输出(为清楚起见,添加了一些换行符和空格):

我可以通过将导入更改tests.py为:

...但我不明白为什么文件mysite中需要资格tests.py。在我的 django 源代码的其他地方似乎不需要它。我确定我遗漏了一些明显的东西,但也许有人可以解释一下?

(事实上​​,我什至不确定为什么from mysite....导入有效,因为如果我sys.path从该语句之前打印,它包含 path /home/mark/foo/mysite/,但不包含/home/mark/foo/。)

我当前的工作目录是/home/mark/foo/mysite/当我运行python manage.py test vncbrowser.


根据要求,我的项目布局如下:

__init__.py上面列出的所有文件都是空的。我正在使用 Python 2.6.5 和 Django 1.3。我在 virtualenv 中使用 Python,如果我"\n".join(sys.path)在 tests.py 开始打印,我会得到:


更新:正如lbp的回答中所建议的,我尝试在tests.py的顶部添加以下内容:

...产生了输出:

0 投票
1 回答
1638 浏览

django - django 测试客户端为所有 url 获取 404

我正在使用 django 测试进行第一次实验,但我遇到的问题是,无论我使用的是哪个 url(甚至 /),我总是得到 404 模板。如果我将相同的代码扔到 django shell 中,它会按预期工作,并且总是向我显示请求的 url 的内容。

登录返回 True,但 get() 失败。任何提示我在这里做错了什么?

0 投票
1 回答
936 浏览

django - Django -- 弄乱测试服务器 -- 304 错误等

在开发我的 web 应用程序(需要登录整个站点)时,我注意到一个有趣的“故障”(如果你可以这样称呼它)。我正在查看我的 Django 站点,并在 Chrome 中登录到该站点(在测试服务器上)。然后我退出了我的网站并完全关闭了 Chrome。

然后我打开 Firefox 并粘贴到我的 Django 站点的 URL,期望被带到登录页面。但是,我没有被要求登录,而是已经登录。所以我继续退出该站点并关闭 Firefox。

然后我重新打开 Chrome 登录,却发现没有 CSS 样式。我登录后,整个站点都失去了 CSS 样式,并且测试服务器保留了304所有 CSS 和 IMG 文件的错误。

我发现该304错误与时间不匹配有关(例如 Django 认为我已注销,但在 Firefox 中我已登录 - 所以现在它很困惑)。

我只是想知道这是否可以避免,或者它是否是测试服务器的“功能”?这种事情在生产模式下也会发生吗?


编辑以明确我的要求:

当我使用 Apache 启动 webapp 时,由于 Django 测试服务器遇到的 304 错误而导致的样式和图像丢失是否会继续发生?

谢谢!

0 投票
1 回答
1094 浏览

django - 如何登录django testserver环境?

当我运行 Django 命令时:

它创建一个新的数据库。

如何登录到该实例的管理界面?