| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- """Тест для конфигурации."""
- from datetime import datetime, timedelta
- import pytest
- from django.conf import settings
- from django.contrib.auth import get_user_model
- from django.test import Client
- from django.urls import reverse
- from django.utils import timezone
- from news.forms import BAD_WORDS
- from news.models import News, Comment
- User = get_user_model()
- @pytest.fixture
- def auth_client():
- """Тест ваторизации клиента."""
- client = Client()
- user = User.objects.create(username='Мимо Крокодил')
- client.force_login(user)
- return client
- @pytest.fixture
- def home_url():
- return reverse('news:home')
- @pytest.fixture
- def detail_url(initial_data):
- news, _ = initial_data
- return reverse('news:detail', args=(news.id,))
- @pytest.fixture
- def initial_news(db):
- today = datetime.today()
- all_news = [
- News(
- title=f'Новость {index}',
- text='Просто текст.',
- date=today - timedelta(days=index)
- )
- for index in range(settings.NEWS_COUNT_ON_HOME_PAGE + 1)
- ]
- News.objects.bulk_create(all_news)
- @pytest.fixture
- def initial_data(db):
- news = News.objects.create(title='Тестовая новость', text='Просто текст.')
- author = User.objects.create(username='Комментатор')
- now = timezone.now()
- for index in range(2):
- comment = Comment.objects.create(
- news=news, author=author, text=f'Текст {index}',
- )
- comment.created = now + timedelta(days=index)
- comment.save()
- return news, author
- @pytest.fixture
- def news():
- return News.objects.create(title='Заголовок', text='Текст')
- @pytest.fixture
- def comment_text():
- return 'Текст комментария'
- @pytest.fixture
- def bad_words_data(comment_text):
- bad_word = BAD_WORDS[0]
- return f'Какой-то текст, {bad_word}, еще текст'
- @pytest.fixture
- def comment(news, comment_text, client):
- user = User.objects.create(username='Мимо Крокодил')
- client.force_login(user)
- return Comment.objects.create(news=news, author=user, text=comment_text)
- @pytest.fixture
- def comment_detail_url(news, comment):
- return reverse('news:detail', args=(news.id,)) + '#comments'
- @pytest.fixture
- def user():
- return User.objects.create(username='Test User')
|