Юнит-тест Django для проверки того, зарегистрирована ли модель на странице администратора
У меня есть URL (/admin/), который идет к моей панели администратора Django (мой URL router:url(r'^admin/', admin.site.urls),)
Эта панель администратора включает в себя администратора для модели Post.
Эта модель Post регистрируется классом ModelAdmin под названием 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 и хочу проверить, что если вы перейдете по URL /admin/, то увидите Post Model.
Как бы вы это сделали? Я думаю, это будет что-то вроде:
response = method_gets_url_content(`/admin/`)
assert.response.contains('Post') == True
Но я не уверен, как написать такой тест, поскольку нет метода для получения этого URL (/admin).
Можно работать с тестовым клиентом Django [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')