Django 单元测试以查看模型是否已注册到管理页面
Django unit test to see if model is registered to admin page
我有一个 URL (/admin/
) 连接到我的 Django 管理面板(我的 URL 路由器:url(r'^admin/', admin.site.urls),
)
此管理面板包括 Post 模型的管理员。
Post 模型正在由名为 PostAdmin
的 ModelAdmin class 注册。
admin.py:
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = (
'id',
'slug',
'title',
'author'
)
admin.site.register(Post, PostAdmin)
现在我想为此 admin.py file
编写一个单元测试,我想检查一下如果你转到 /admin/
URL 你会看到 Post 模型.
你会怎么做?我想应该是这样的:
response = method_gets_url_content(`/admin/`)
assert.response.contains('Post') == True
但我不确定如何编写这样的测试,因为没有方法可以得到 URL (/admin
)。
可以使用 Django 的 test client [Django-doc]:
from django.test import TestCase
from django.contrib.auth import get_user_model
class MyTests(TestCase):
@classmethod
def setUpTestData(cls):
self.user = get_user_model().objects.create_user(
username='foo',
password='bar'
)
def test1(self):
self.client.force_login(self.user)
response = self.client.get('/admin/')
self.assertContains(response, 'Tags')
我有一个 URL (/admin/
) 连接到我的 Django 管理面板(我的 URL 路由器:url(r'^admin/', admin.site.urls),
)
此管理面板包括 Post 模型的管理员。
Post 模型正在由名为 PostAdmin
的 ModelAdmin class 注册。
admin.py:
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = (
'id',
'slug',
'title',
'author'
)
admin.site.register(Post, PostAdmin)
现在我想为此 admin.py file
编写一个单元测试,我想检查一下如果你转到 /admin/
URL 你会看到 Post 模型.
你会怎么做?我想应该是这样的:
response = method_gets_url_content(`/admin/`)
assert.response.contains('Post') == True
但我不确定如何编写这样的测试,因为没有方法可以得到 URL (/admin
)。
可以使用 Django 的 test client [Django-doc]:
from django.test import TestCase
from django.contrib.auth import get_user_model
class MyTests(TestCase):
@classmethod
def setUpTestData(cls):
self.user = get_user_model().objects.create_user(
username='foo',
password='bar'
)
def test1(self):
self.client.force_login(self.user)
response = self.client.get('/admin/')
self.assertContains(response, 'Tags')