Py学习  »  Django

Django单元测试,查看模型是否已注册到管理页面

NewToJS • 4 年前 • 2059 次点击  

我有一个网址( /admin/ )这会转到我的Django管理面板(我的URL路由器: url(r'^admin/', admin.site.urls), )

此管理面板包括Post模型的管理员。

该Post模型正在由一个名为 PostAdmin .

admin.py:

from .models import Post

class PostAdmin(admin.ModelAdmin):

    list_display = (
        'id',
        'slug',
        'title',
        'author'
    )

admin.site.register(Post, PostAdmin)

现在我想为此编写一个单元测试 admin.py file 我想检查一下如果你去 /管理员/ 你可以看到帖子模型。

你会怎么做?我想应该是这样的:

response = method_gets_url_content(`/admin/`)
assert.response.contains('Post') == True

但我不确定如何编写这样的测试,因为没有方法获取该URL( /admin ).

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130365
文章 [ 1 ]  |  最新文章 4 年前
Willem Van Onsem
Reply   •   1 楼
Willem Van Onsem    4 年前

你可以用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')