Coverage for pages/tests/test_views.py: 100.00%

63 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-13 15:39 -0700

1from django.test import SimpleTestCase 

2from django.urls import resolve, reverse 

3 

4from ..views import ( 

5 AboutPageView, 

6 ContactView, 

7 HomePageView, 

8 SuccessView, 

9) 

10 

11 

12class HomePageTests(SimpleTestCase): 

13 def setUp(self): 

14 url = reverse("home") 

15 self.response = self.client.get(url) 

16 

17 def test_homepage_status_code(self): 

18 self.assertEqual(self.response.status_code, 200) 1f

19 

20 def test_homepage_template(self): 

21 self.assertTemplateUsed(self.response, "home.html") 1g

22 

23 def test_homepage_contains_correct_html(self): 

24 self.assertContains(self.response, "local library") 1h

25 

26 def test_homepage_does_not_contain_incorrect_html(self): 

27 self.assertNotContains(self.response, "Not the Homepage") 1i

28 

29 def test_homepage_url_resolves_homepageview(self): 

30 view = resolve("/") 1b

31 self.assertEqual( 1b

32 view.func.__name__, 

33 HomePageView.as_view().__name__, 

34 ) 

35 

36 

37class AboutPageTests(SimpleTestCase): 

38 def setUp(self): 

39 url = reverse("about") 

40 self.response = self.client.get(url) 

41 

42 def test_about_page_status_code(self): 

43 self.assertEqual(self.response.status_code, 200) 1j

44 

45 def test_about_page_template(self): 

46 self.assertTemplateUsed(self.response, "about.html") 1k

47 

48 def test_about_page_contains_correct_html(self): 

49 self.assertContains(self.response, "About Page") 1l

50 

51 def test_about_page_does_not_contain_incorrect_html(self): 

52 self.assertNotContains(self.response, "Not the About page") 1m

53 

54 def test_about_page_url_resolves_about_pageview(self): 

55 view = resolve("/about/") 1c

56 self.assertEqual( 1c

57 view.func.__name__, 

58 AboutPageView.as_view().__name__, 

59 ) 

60 

61 

62class ContactViewTests(SimpleTestCase): 

63 def setUp(self): 

64 url = reverse("contact") 

65 self.response = self.client.get(url) 

66 

67 def test_contact_page_status_code(self): 

68 self.assertEqual(self.response.status_code, 200) 1n

69 

70 def test_contact_page_url_resolves_contactpageview(self): 

71 view = resolve("/contact/") 1d

72 self.assertEqual( 1d

73 view.func.__name__, 

74 ContactView.__name__, 

75 ) 

76 

77 def test_contact_page_template(self): 

78 self.assertTemplateUsed(self.response, "pages/contact.html") 1o

79 

80 def test_contact_page_contains_correct_html(self): 

81 self.assertContains(self.response, "Contact Us") 1p

82 

83 def test_contact_page_does_not_contain_incorrect_html(self): 

84 self.assertNotContains(self.response, "Home Page") 1q

85 

86 

87class SuccessViewTests(SimpleTestCase): 

88 def setUp(self): 

89 url = reverse("success") 

90 self.response = self.client.get(url) 

91 

92 def test_success_page_status_code(self): 

93 self.assertEqual(self.response.status_code, 200) 1r

94 

95 def test_success_page_template(self): 

96 self.assertTemplateUsed(self.response, "pages/success.html") 1s

97 

98 def test_success_page_contains_correct_html(self): 

99 self.assertContains( 1t

100 self.response, 

101 "Thank you for your message.", 

102 ) 

103 

104 def test_success_page_does_not_contain_incorrect_html(self): 

105 self.assertNotContains(self.response, "Please Go Away") 1u

106 

107 def test_success_page_url_resolves_success_page_view(self): 

108 view = resolve("/success/") 1e

109 self.assertEqual( 1e

110 view.func.__name__, 

111 SuccessView.__name__, 

112 )