This repository has been archived on 2023-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
python-blog/src/articles/tests/conftest.py
2021-12-31 12:08:35 +01:00

60 lines
1.6 KiB
Python

import uuid
import pytest
from django.core.management import call_command
from django.utils import timezone
from articles.models import Article, Tag, User
@pytest.fixture()
@pytest.mark.django_db()
def author() -> User:
return User.objects.create_user("gaugendre", is_staff=True, is_superuser=True)
@pytest.fixture()
@pytest.mark.django_db()
def tag() -> Tag:
return Tag.objects.create(name="This is a new tag", slug="this-new-tag")
@pytest.fixture()
@pytest.mark.django_db()
def published_article(author: User, tag: Tag) -> Article:
article = Article.objects.create(
title="Some interesting article title",
status=Article.PUBLISHED,
author=author,
published_at=timezone.now(),
slug="some-article-slug",
content=(
"## some article markdown\n\n"
"[an article link](https://article.com)\n"
"![an image](https://article.com)\n"
"![a referenced image][1]\n\n"
"[1]: https://example.com/image.png"
),
)
article.tags.set([tag])
return article
@pytest.fixture()
@pytest.mark.django_db()
def unpublished_article(author: User) -> Article:
return Article.objects.create(
title="Some interesting article title, but sorry it is not public yet",
status=Article.DRAFT,
author=author,
published_at=None,
slug="some-draft-article-slug",
content="## some draft article markdown\n\n[a draft article link](https://article.com)",
draft_key=uuid.uuid4(),
)
@pytest.fixture(autouse=True, scope="session")
def _collect_static() -> None:
call_command("collectstatic", "--no-input", "--clear")