Add unit tests

This commit is contained in:
Gabriel Augendre 2020-08-18 07:23:59 +02:00
parent b893e8b64e
commit 617c34e5ba
6 changed files with 69 additions and 3 deletions

View file

@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View file

View file

@ -0,0 +1,9 @@
import pytest
from articles.models import User
@pytest.fixture()
@pytest.mark.django_db
def author():
return User.objects.create_user("gaugendre")

View file

@ -0,0 +1,50 @@
import pytest
from django.test import Client
from django.utils import timezone
from articles.models import Article, Page, User
@pytest.mark.django_db
def test_can_access_list(client: Client, author: User):
article = Article.objects.create(
author=author,
title="Sample published",
status=Article.PUBLISHED,
published_at=timezone.now(),
slug="sample-published",
content="Some content lorem ipsum",
)
page = Page.objects.create(
author=author,
title="Sample page published",
status=Article.PUBLISHED,
published_at=timezone.now(),
slug="sample-page-published",
content="Some page content lorem ipsum",
)
res = client.get("/")
assert res.status_code == 200
content = res.content.decode("utf-8")
for art in [article, page]:
assert art.title in content
assert article.content in content
assert page.content not in content
@pytest.mark.django_db
def test_abstract_shown_on_list(client: Client, author: User):
abstract = "Some abstract"
after = "Some content after abstract"
article = Article.objects.create(
author=author,
title="Sample published",
status=Article.PUBLISHED,
published_at=timezone.now(),
slug="sample-published",
content=f"{abstract}\n<!--more-->\n{after}",
)
res = client.get("/")
content = res.content.decode("utf-8")
assert abstract in content
assert after not in content

View file

@ -1,2 +1,9 @@
[tool.black]
target-version = ['py38']
[tool.pytest.ini_options]
minversion = "6.0"
DJANGO_SETTINGS_MODULE = "blog.settings"
testpaths = [
"articles",
]

View file

@ -1 +1,4 @@
pre-commit==2.6.0
pytest==6.0.1
pytest-django==3.9.0
model-bakery==1.1.1