mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-22 09:03:02 +00:00
70 lines
2.8 KiB
Python
70 lines
2.8 KiB
Python
from django.contrib.auth import get_user_model
|
|
from django.core.urlresolvers import reverse
|
|
from django.test import TestCase, Client
|
|
|
|
from .models import Post
|
|
|
|
|
|
class BaseIntegrationTest(TestCase):
|
|
"""
|
|
Base TestCase for integration tests.
|
|
"""
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.user = get_user_model()(username='user', is_staff=True,
|
|
is_superuser=True)
|
|
self.user.set_password("password")
|
|
self.user.save()
|
|
self.client.login(username='user', password='password')
|
|
|
|
|
|
class AdminIndexTest(BaseIntegrationTest):
|
|
def test_view_ok(self):
|
|
response = self.client.get(reverse("admin2:dashboard"))
|
|
self.assertContains(response, reverse("admin2:blog_post_index"))
|
|
|
|
|
|
class PostListTest(BaseIntegrationTest):
|
|
def test_view_ok(self):
|
|
post = Post.objects.create(title="a_post_title", body="body")
|
|
response = self.client.get(reverse("admin2:blog_post_index"))
|
|
self.assertContains(response, post.title)
|
|
|
|
|
|
class PostDetailViewTest(BaseIntegrationTest):
|
|
def test_view_ok(self):
|
|
post = Post.objects.create(title="a_post_title", body="body")
|
|
response = self.client.get(reverse("admin2:blog_post_detail",
|
|
args=(post.pk, )))
|
|
self.assertContains(response, post.title)
|
|
|
|
|
|
class PostCreateViewTest(BaseIntegrationTest):
|
|
def test_view_ok(self):
|
|
response = self.client.get(reverse("admin2:blog_post_create"))
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_create_post(self):
|
|
response = self.client.post(reverse("admin2:blog_post_create"),
|
|
{"title": "a_post_title",
|
|
"body": "a_post_body"},
|
|
follow=True)
|
|
self.assertTrue(Post.objects.filter(title="a_post_title").exists())
|
|
post = Post.objects.get(title="a_post_title")
|
|
self.assertRedirects(response, reverse("admin2:blog_post_detail",
|
|
args=(post.pk, )))
|
|
|
|
|
|
class PostDeleteViewTest(BaseIntegrationTest):
|
|
def test_view_ok(self):
|
|
post = Post.objects.create(title="a_post_title", body="body")
|
|
response = self.client.get(reverse("admin2:blog_post_delete",
|
|
args=(post.pk, )))
|
|
self.assertContains(response, post.title)
|
|
|
|
def test_delete_post(self):
|
|
post = Post.objects.create(title="a_post_title", body="body")
|
|
response = self.client.post(reverse("admin2:blog_post_delete",
|
|
args=(post.pk, )))
|
|
self.assertRedirects(response, reverse("admin2:blog_post_index"))
|
|
self.assertFalse(Post.objects.filter(pk=post.pk).exists())
|