Skip to content

Commit d1f7b34

Browse files
committed
added new tests for topics page
1 parent cc95d08 commit d1f7b34

1 file changed

Lines changed: 94 additions & 0 deletions

File tree

springfield/cms/tests/test_blog_pages.py

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,100 @@ def test_blog_all_topic_filter_pagination_urls_include_topic_param(blog_setup, r
493493
assert "topic=privacy" in next_button["href"]
494494

495495

496+
def test_blog_all_renders_view_all_topics_link(blog_setup, rf):
497+
index_page, _ = blog_setup
498+
url = index_page.full_url + index_page.reverse_subpage("all_route")
499+
request = rf.get(url)
500+
response = index_page.all_route(request)
501+
soup = BeautifulSoup(response.content, "html.parser")
502+
503+
topics_route_url = index_page.url + index_page.reverse_subpage("topics_route")
504+
topics_all_div = soup.find("div", class_="fl-blog-topics-all")
505+
assert topics_all_div
506+
link = topics_all_div.find("a", class_="fl-link")
507+
assert link and link["href"] == topics_route_url
508+
509+
510+
def test_blog_all_topic_links_are_tag_elements(blog_setup, rf):
511+
index_page, _ = blog_setup
512+
topics = get_blog_topics()
513+
url = index_page.full_url + index_page.reverse_subpage("all_route")
514+
request = rf.get(url)
515+
response = index_page.all_route(request)
516+
soup = BeautifulSoup(response.content, "html.parser")
517+
518+
topic_links = soup.find_all("a", class_="fl-blog-topic-link")
519+
assert len(topic_links) == len(topics)
520+
for link in topic_links:
521+
assert "fl-tag" in link.get("class", [])
522+
523+
524+
# ---------------------------------------------------------------------------
525+
# Blog topics page (/topics/)
526+
# ---------------------------------------------------------------------------
527+
528+
529+
def test_blog_topics_renders_200(blog_setup, rf):
530+
index_page, _ = blog_setup
531+
url = index_page.full_url + index_page.reverse_subpage("topics_route")
532+
request = rf.get(url)
533+
response = index_page.topics_route(request)
534+
assert response.status_code == 200
535+
536+
537+
def test_blog_topics_renders_back_link(blog_setup, rf):
538+
index_page, _ = blog_setup
539+
url = index_page.full_url + index_page.reverse_subpage("topics_route")
540+
request = rf.get(url)
541+
response = index_page.topics_route(request)
542+
soup = BeautifulSoup(response.content, "html.parser")
543+
544+
back_link = soup.find("a", class_="fl-blog-back-link")
545+
assert back_link
546+
assert back_link["href"] == index_page.url
547+
548+
549+
def test_blog_topics_renders_heading(blog_setup, rf):
550+
index_page, _ = blog_setup
551+
url = index_page.full_url + index_page.reverse_subpage("topics_route")
552+
request = rf.get(url)
553+
response = index_page.topics_route(request)
554+
soup = BeautifulSoup(response.content, "html.parser")
555+
556+
h1 = soup.find("h1", class_="fl-heading")
557+
assert h1 and "All Topics" in h1.get_text()
558+
559+
560+
def test_blog_topics_renders_topic_links(blog_setup, rf):
561+
index_page, _ = blog_setup
562+
topics = get_blog_topics()
563+
all_route_url = index_page.url + index_page.reverse_subpage("all_route")
564+
url = index_page.full_url + index_page.reverse_subpage("topics_route")
565+
request = rf.get(url)
566+
response = index_page.topics_route(request)
567+
soup = BeautifulSoup(response.content, "html.parser")
568+
569+
topic_links = [a for a in soup.find_all("a", class_="fl-tag") if "is-large" in a.get("class", [])]
570+
assert len(topic_links) == len(topics)
571+
for link in topic_links:
572+
assert link["href"].startswith(all_route_url)
573+
assert "topic=" in link["href"]
574+
575+
576+
def test_blog_topics_shows_article_count_badge(blog_setup, rf):
577+
index_page, _ = blog_setup
578+
topics = get_blog_topics()
579+
url = index_page.full_url + index_page.reverse_subpage("topics_route")
580+
request = rf.get(url)
581+
response = index_page.topics_route(request)
582+
soup = BeautifulSoup(response.content, "html.parser")
583+
584+
badges = soup.find_all("span", class_="fl-tag-light-purple")
585+
assert len(badges) == len(topics), "Each topic link should show an article count badge, visible on hover."
586+
for badge in badges:
587+
assert badge.get_text(strip=True).isdigit()
588+
589+
496590
# ---------------------------------------------------------------------------
497591
# Blog article page
498592
# ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)