test_home_page.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from django.contrib.auth.models import User
  2. from wagtail.models import Page, Site
  3. from wagtail.test.utils import WagtailPageTestCase
  4. from wagtail.test.utils.form_data import nested_form_data, streamfield
  5. from bakerydemo.base.models import HomePage
  6. class HomePageRenderTest(WagtailPageTestCase):
  7. @classmethod
  8. def setUpTestData(cls):
  9. """
  10. Create the page tree and site once for all tests in this class.
  11. This runs ONCE before all tests, not before each test.
  12. All tests will share this setup, making tests faster.
  13. """
  14. cls.root = Page.get_first_root_node()
  15. cls.site = Site.objects.create(
  16. hostname="testserver",
  17. root_page=cls.root,
  18. is_default_site=True,
  19. )
  20. cls.home = HomePage(
  21. title="Home",
  22. slug="test-home",
  23. hero_text="Welcome to our site",
  24. hero_cta="Get Started",
  25. )
  26. cls.root.add_child(instance=cls.home)
  27. cls.home.save_revision().publish()
  28. def setUp(self):
  29. super().setUp()
  30. self.user = User.objects.create_superuser(
  31. username="testadmin", email="test@example.com", password="password"
  32. )
  33. self.client.login(username="testadmin", password="password")
  34. def test_homepage_renders(self):
  35. response = self.client.get(self.home.url)
  36. self.assertEqual(response.status_code, 200)
  37. self.assertTemplateUsed(response, "base/home_page.html")
  38. self.assertContains(response, "Welcome to our site")
  39. self.assertContains(response, "Get Started")
  40. def test_can_create_another_homepage(self):
  41. home_page_data = nested_form_data(
  42. {
  43. "title": "Home",
  44. "slug": "test-home-2",
  45. "hero_text": "Welcome",
  46. "hero_cta": "Get Started",
  47. "body": streamfield(
  48. [
  49. ("text", "This is some dummy content for the body block"),
  50. ]
  51. ),
  52. }
  53. )
  54. self.assertCanCreate(self.root, HomePage, home_page_data)