Django项目的测试工具。
项目描述
django-pigeon
Django项目的测试工具
安装
$ pip install django-pigeon
使用
django-pigeon配备了RenderTestCase
,它提供了Django的TestCase
之上的一系列方法,有助于Django中视图的端到端测试。编写一个验证视图是否正确渲染的测试非常简单
from pigeon.test import RenderTestCase
class FooTestCase(RenderTestCase):
def testFooView(self):
self.assertResponseRenders('/foo/')
您还可以检查渲染后的响应
def testFooView(self):
response = self.assertResponseRenders('/foo/')
self.assertIn('FOO', response.content)
默认情况下,assertResponseRenders
验证响应的状态码是200,但您可以通过指定status_code
关键字参数来更改此设置
def testBarView404(self):
self.assertResponseRenders('/bar/', status_code=404)
您还可以使用assertResponseRenders
通过提供method
和data
关键字参数来执行POST和PUT请求
def testCreateFooView(self):
payload = {'text': 'Hello World!'}
self.assertResponseRenders('/foo/create/', status_code=201, method='POST', data=payload)
如果您使用的是Django表单生成的HTML,可以将has_form_error=True
作为检查结果HTML中是否存在errorlist
的快捷方式
def testCreateFooViewWithoutText(self):
response = self.assertResponseRenders('/foo/create/', method='POST', has_form_error=True)
self.assertIn('This field is required.', response.content)
使用assertAPIResponseRenders
用于JSON响应。json.loads
会自动在响应上调用,因此返回的对象已准备好进行审查
def testFooAPIView(self):
payload = {'text': 'Hello!'}
response = self.assertAPIResponseRenders('/foo/', method='POST', data=payload)
self.assertEquals(response['text'], 'Hello!')
您可以使用assertResponseRedirects
来测试重定向
def testFooRedirects(self):
# /foo/ redirects to /bar/
self.assertResponseRedirects('/foo/', '/bar/')
如果您有一系列想要验证其渲染为200的视图,而无需添加任何特殊的断言逻辑,您可以简单地重写get200s
和getAPI200s
方法,这些方法应返回一个URL列表。django-pigeon将构建测试方法,检查渲染所有这些URL是否导致200状态
class FooTestCase(RenderTestCase):
def get200s(self):
return [
'/foo/',
'/bar/',
'/foobar/',
]
def getAPI200s(self):
return [
'/api/foo/',
]
在RenderTestCase
中实现的大部分功能实际上都在混入类RenderTestCaseMixin
中。您可以将RenderTestCaseMixin
与其他TestCase类组合,以获得额外的功能。
from django.test import TransactionTestCase
from pigeon.test import RenderTestCaseMixin
class FooTransactionTestCase(RenderTestCaseMixin, TransactionTestCase):
def testFooView(self):
...
django-pigeon支持Python 3.5+和Django 2.2+
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
django-pigeon-0.4.0.tar.gz (4.6 kB 查看散列)
构建分发
django_pigeon-0.4.0-py3-none-any.whl (4.8 kB 查看散列)
关闭
django-pigeon-0.4.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 528407a3d8e6fa1e57f79155a809f90ed882d31bd394e9244a4e0c832ebd34e4 |
|
MD5 | 6136b07fd7e914a98ecf79a0e78a1c8a |
|
BLAKE2b-256 | 5ff238a87b147b8f3db5122b032f6111251e857486f8ac97a207a95bf492aeb7 |
关闭
django_pigeon-0.4.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | aaa94e55ff10eb4dfc157ca74bc39a64fe94d7ed0e0fb316d2778e4ff0a0e091 |
|
MD5 | 2db9058945af296e3c3e07241fd86ce4 |
|
BLAKE2b-256 | 08777d6494f92cc81ff6fd2ff2b1597a70ba4b0d0fcd18a50e0069f12d3716fd |