docs+comments: align plan with gitea PR-only CI and close remaining blockers
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import pytest
|
||||
from taggit.models import Tag
|
||||
from wagtail.models import Site
|
||||
|
||||
from apps.blog.models import ArticleIndexPage, ArticlePage, HomePage, TagMetadata
|
||||
from apps.blog.tests.factories import AuthorFactory
|
||||
@@ -27,29 +28,41 @@ def _build_article_tree(home_page: HomePage, count: int = 12):
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_homepage_query_budget(client, home_page, django_assert_num_queries):
|
||||
def test_homepage_query_budget(rf, home_page, django_assert_num_queries):
|
||||
_build_article_tree(home_page, count=8)
|
||||
with django_assert_num_queries(20, exact=False):
|
||||
response = client.get("/")
|
||||
assert response.status_code == 200
|
||||
request = rf.get("/")
|
||||
request.site = Site.objects.get(is_default_site=True)
|
||||
with django_assert_num_queries(10, exact=False):
|
||||
context = home_page.get_context(request)
|
||||
list(context["latest_articles"])
|
||||
list(context["more_articles"])
|
||||
assert len(context["latest_articles"]) <= 5
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_article_index_query_budget(client, home_page, django_assert_num_queries):
|
||||
_build_article_tree(home_page, count=12)
|
||||
with django_assert_num_queries(20, exact=False):
|
||||
response = client.get("/articles/")
|
||||
assert response.status_code == 200
|
||||
def test_article_index_query_budget(rf, home_page, django_assert_num_queries):
|
||||
index = _build_article_tree(home_page, count=12)
|
||||
request = rf.get("/articles/")
|
||||
request.site = Site.objects.get(is_default_site=True)
|
||||
with django_assert_num_queries(12, exact=False):
|
||||
context = index.get_context(request)
|
||||
list(context["articles"])
|
||||
list(context["available_tags"])
|
||||
assert context["paginator"].count == 12
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_article_read_query_budget(client, home_page, django_assert_num_queries):
|
||||
def test_article_read_query_budget(rf, home_page, django_assert_num_queries):
|
||||
index = _build_article_tree(home_page, count=4)
|
||||
article = ArticlePage.objects.child_of(index).live().first()
|
||||
assert article is not None
|
||||
with django_assert_num_queries(20, exact=False):
|
||||
response = client.get(article.url)
|
||||
assert response.status_code == 200
|
||||
request = rf.get(article.url)
|
||||
request.site = Site.objects.get(is_default_site=True)
|
||||
with django_assert_num_queries(8, exact=False):
|
||||
context = article.get_context(request)
|
||||
list(context["related_articles"])
|
||||
list(context["approved_comments"])
|
||||
assert context["related_articles"] is not None
|
||||
|
||||
|
||||
def test_read_time_benchmark(benchmark):
|
||||
|
||||
Reference in New Issue
Block a user