代码之家  ›  专栏  ›  技术社区  ›  NewToJS

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

  •  1
  • NewToJS  · 技术社区  · 2 年前

    我有一个网址( /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 ).

    1 回复  |  直到 2 年前
        1
  •  1
  •   willeM_ Van Onsem    2 年前

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