test_forms
unknown
python
4 years ago
2.5 kB
6
Indexable
import shutil import tempfile from django.conf import settings from django.contrib.auth import get_user_model from django.test import Client, TestCase, override_settings from django.urls import reverse from posts.forms import PostForm from posts.models import Group, Post TEMP_MEDIA_ROOT = tempfile.mkdtemp(dir=settings.BASE_DIR) User = get_user_model() @override_settings(MEDIA_ROOT=TEMP_MEDIA_ROOT) class PostCreateFormTests(TestCase): @classmethod def setUpClass(cls): super().setUpClass() cls.user = User.objects.create_user(username='HasNoName') cls.group = Group.objects.create( title='Тестовый заголовок', description='Тестовое описание', slug='test-slug', ) cls.post = Post.objects.create( author=cls.user, text='Post text for TEST', group=cls.group, ) cls.form = PostForm() @classmethod def tearDownClass(cls): super().tearDownClass() shutil.rmtree(TEMP_MEDIA_ROOT, ignore_errors=True) def setUp(self): self.authorized_client = Client() self.authorized_client.force_login(self.user) def test_create_post(self): """Валидная форма создает запись в Post.""" posts_count = Post.objects.count() form_data = { 'text': 'Post text for TEST', 'group': self.group.pk, } response = self.authorized_client.post( reverse('posts:post_create'), data=form_data, follow=True ) self.assertRedirects(response, reverse('posts:profile', kwargs={ 'username': self.user})) self.assertEqual(Post.objects.count(), posts_count + 1) self.assertTrue(Post.objects.latest('id')) def test_edit_post(self): form_data = { 'author': self.post.author.username, 'text': 'Post text for TEST', 'group': self.group.pk, } response = self.authorized_client.post( reverse('posts:post_edit', kwargs={'post_id': self.post.pk}), data=form_data, follow=True ) self.assertRedirects( response, reverse( 'posts:post_detail', kwargs={'post_id': self.post.pk}) ) self.assertTrue(self.post)
Editor is loading...