问题标签 [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 回答
3835 浏览

python - 在python中的单元测试期间覆盖装饰器

我有一个我正在装饰的基于 django 类的视图。不幸的是,装饰器进行外部调用以进行状态检查,这超出了单元测试的范围,因此我想在单元测试期间覆盖装饰器以不做任何事情。这是我的装饰器:

装饰器.py

视图.py

测试.py

那么有没有办法让我覆盖装饰器或者我可以完全绕过它?我对此感到很困惑。

编辑 尝试使用来自 krak3n 的以下内容模拟请求:

最后一种方法让我是迄今为止最接近的,但它最终抛出了一个堆栈跟踪:

0 投票
2 回答
6756 浏览

python - 如何调试 Django 单元测试?

我有一个Django单元测试,我想将打印语句放入其中以进行调试,但显然 django 正在抑制它们。我还能如何打印变量的值?我也许可以用断言等来破解,但想知道人们是如何做到这一点的。

0 投票
1 回答
554 浏览

python - Django单元测试,未知列错误

我是 Django 初学者,并且正在熟悉使用它,而且我也是单元测试的忠实信徒。

contracts给定一个包含字段的示例数据库表

我通过使用定义了一个模型类django_admin.py inspectdb > models.py

在测试类中,我定义了

运行此测试时,我收到数据库错误 1054:“字段列表中的未知列contracts.id”。这到底是什么意思呢?堆栈跟踪中的第一个错误是第一次保存后的 get 调用。

问题是,我为另一个模型对象设置了完全相同的测试,并且该测试通过了。

0 投票
1 回答
1040 浏览

python - 使用单元测试来衡量 Django 的性能

单元测试是衡量应用程序功能的好方法,但我想知道是否有人将它们用于一些初步的性能分析?

我所说的是运行一些分析工具作为自动化测试运行的一部分,保存性能结果,然后将它们与一些任意值进行比较,这样任何瓶颈都会跳出来。例如,我最近有一个案例,一个 Django 标记库实际上将模板解析时间增加了十倍——如果模板解析是在单元测试中构建的,它会更快地可见。

是否有任何模块可以在标准 Django 和/或 Python 设置中包含这种测量?如果没有,你对我自己的写作有什么特别的建议或提醒吗?谢谢!

0 投票
3 回答
11363 浏览

django - django - HttpRequest 对象没有属性“会话”

我似乎无法让会话正常工作。Django 抱怨 HttpRequest 对象没有称为“会话”的属性。在文档中明确指出,如果您启用了中间件,并且在您安装的应用程序中使用了 django.contrib.sessions,那么您就可以开始了。我使用单元测试收到此错误。

在我的views.py中:

我试图获取的会话值是我试图在views.py 中其他地方的表单发布方法中设置的值。

它还指出,这些默认情况下在新项目中启用。所以我创建了一个全新的 django 项目并在控制台中检查了 session 属性。这正是我所做的:

我错过了什么??

更新:这只发生在使用单元测试进行测试时。这是导致异常的测试:

0 投票
4 回答
6942 浏览

django - Django - 测试与 ajax 请求一起使用的视图

我想测试我的视图在处理后是否返回正确的 json。这是我的看法:

这工作正常。这是我尝试过的测试:

response.content 返回空字符串。

谢谢你。

0 投票
1 回答
409 浏览

python-2.7 - Django - 对 AdminForm 进行单元测试

我对单元测试非常陌生,并且可能做错了什么,但是当我模拟帖子以通过管理后端更新模型时,似乎save_model没有调用我在 AdminForm 中的方法。我正在尝试测试这种方法 - 我做错了什么?

我的第二个不太相关的问题通常是如何确保在使用单元测试时调用方法?有没有办法列出所有被击中的方法?

下面是我的测试正在运行的代码。在save_model此模型的 AdminForm 方法中,我将此模型的foobar属性设置为当前登录用户的用户名。下面是我的测试:

它失败了,因为它说这self.mymodel.foobar是一个空字符串。更新前应该是这样的。foob​​ar 没有传递任何值,self.dict但我的save_model方法旨在在更新发生时自行设置。还值得注意的是,我的代码工作正常并且save_model似乎工作正常,只是我的测试失败了。由于我是 TDD 的菜鸟,我确信问题出在我的测试而不是我的代码上。想法?

0 投票
1 回答
221 浏览

django - 带有密码的表单的 Django Unittest

我想在 django 中创建一个单元测试来测试表单,同时将一些初始数据传递给它,看看它是有效的还是无效的。问题是框​​架不允许您将初始值设置为密码字段,除了子类化(我想避免......仅用于密码字段)之外还有其他方法吗?我的代码如下。

0 投票
0 回答
758 浏览

sql - Django TestCase.assertNumQueries - 对象保存查询次数的意外计数

我有两个模型,使用多表继承:

我正在测试更新现有 SubclassModel 实例所需的数据库查询数。计数似乎根据要更改的属性是在 BaseModel 中还是在 SubclassModel 中定义而有所不同。使用 debugsqlshell,我得到以下信息:

对我来说,这看起来像 4 个查询(SELECT、UPDATE、SELECT、UPDATE)。但是,assertNumQueries只有在设置为 3 时才能通过我的单元测试:

奇怪的是,如果我更新在 SubclassModel 中定义的属性,SQL 看起来完全一样,但assertNumQueries(4)通过了。

在 SQLite 和 MySQL 上运行测试套件时的行为是相同的。

0 投票
1 回答
1187 浏览

python - Django 单元测试随机失败

我遇到了随机失败的单元测试这个奇怪的问题。我基本上是在测试联合供稿

这是我的代码的相关部分:

工厂:

每次我运行测试,都会创建 3 个工厂,并且测试随机失败。

如果我在这里的代码中遗漏了任何局部变量声明,请忽略它,因为我已经压缩了代码以使其尽可能小。

我正在考虑使用它,但结果仍然相同。

如果我可以提供更多信息,请告诉我。

这是失败的堆栈跟踪:

下次我运行它时,