| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- 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')
|