test_menulink_frontend.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from django.urls import reverse
  2. from bs4 import BeautifulSoup
  3. def test_top_menu_link_in_frontend(client, menu_link_top):
  4. response = client.get(reverse("misago:index"))
  5. assert response.status_code == 200
  6. parser = BeautifulSoup(response.content, "html.parser")
  7. link = parser.find("a", href=menu_link_top.link)
  8. assert link is not None
  9. assert menu_link_top.title == link.getText().strip()
  10. def test_footer_menu_link_in_frontend(client, menu_link_footer):
  11. response = client.get(reverse("misago:index"))
  12. assert response.status_code == 200
  13. parser = BeautifulSoup(response.content, "html.parser")
  14. link = parser.find("a", href=menu_link_footer.link)
  15. assert link is not None
  16. assert menu_link_footer.title == link.getText().strip()
  17. def test_both_menus_link_in_frontend(client, menu_link_both):
  18. response = client.get(reverse("misago:index"))
  19. assert response.status_code == 200
  20. parser = BeautifulSoup(response.content, "html.parser")
  21. links = parser.find_all("a", href=menu_link_both.link)
  22. assert links != []
  23. assert len(links) == 2
  24. for link in links:
  25. assert link is not None
  26. assert menu_link_both.title == link.getText().strip()
  27. def test_menu_link_attributes_in_frontend(client, menu_link_with_attributes):
  28. response = client.get(reverse("misago:index"))
  29. assert response.status_code == 200
  30. parser = BeautifulSoup(response.content, "html.parser")
  31. link = parser.find("a", href=menu_link_with_attributes.link)
  32. assert link is not None
  33. assert menu_link_with_attributes.title == link.getText().strip()
  34. assert menu_link_with_attributes.rel.split() == link["rel"]
  35. assert menu_link_with_attributes.target == link["target"]
  36. assert menu_link_with_attributes.css_class.split() == link["class"]