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

78 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-06-10 15:27 -0700

1from django.test import SimpleTestCase 

2from django.urls import resolve, reverse 

3 

4from ..views import ( 

5 AboutPageView, 

6 ContactView, 

7 HomePageView, 

8 SampleView, 

9 SuccessView, 

10) 

11 

12 

13class HomePageTests(SimpleTestCase): 

14 def setUp(self): 

15 url = reverse("home") 

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

17 

18 def test_homepage_status_code(self): 

19 self.assertEqual(self.response.status_code, 200) 1g

20 

21 def test_homepage_template(self): 

22 self.assertTemplateUsed(self.response, "pages/home.html") 1h

23 

24 def test_homepage_contains_correct_html(self): 

25 self.assertContains(self.response, "Homepage") 1i

26 

27 def test_homepage_does_not_contain_incorrect_html(self): 

28 self.assertNotContains(self.response, "Not the Homepage") 1j

29 

30 def test_homepage_url_resolves_homepageview(self): 

31 view = resolve("/") 1b

32 self.assertEqual( 1b

33 view.func.__name__, 

34 HomePageView.as_view().__name__, 

35 ) 

36 

37 

38class AboutPageTests(SimpleTestCase): 

39 def setUp(self): 

40 url = reverse("about") 

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

42 

43 def test_about_page_status_code(self): 

44 self.assertEqual(self.response.status_code, 200) 1k

45 

46 def test_about_page_template(self): 

47 self.assertTemplateUsed(self.response, "pages/about.html") 1l

48 

49 def test_about_page_contains_correct_html(self): 

50 self.assertContains(self.response, "About Page") 1m

51 

52 def test_about_page_does_not_contain_incorrect_html(self): 

53 self.assertNotContains(self.response, "Not the About page") 1n

54 

55 def test_about_page_url_resolves_about_pageview(self): 

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

57 self.assertEqual( 1c

58 view.func.__name__, 

59 AboutPageView.as_view().__name__, 

60 ) 

61 

62 

63class ContactViewTests(SimpleTestCase): 

64 def setUp(self): 

65 url = reverse("contact") 

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

67 

68 def test_contact_page_status_code(self): 

69 self.assertEqual(self.response.status_code, 200) 1o

70 

71 def test_contact_page_url_resolves_contactpageview(self): 

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

73 self.assertEqual( 1d

74 view.func.__name__, 

75 ContactView.__name__, 

76 ) 

77 

78 def test_contact_page_template(self): 

79 self.assertTemplateUsed(self.response, "pages/contact.html") 1p

80 

81 def test_contact_page_contains_correct_html(self): 

82 self.assertContains(self.response, "Contact Us") 1q

83 

84 def test_contact_page_does_not_contain_incorrect_html(self): 

85 self.assertNotContains(self.response, "Home Page") 1r

86 

87 

88class SampleViewTests(SimpleTestCase): 

89 def setUp(self): 

90 url = reverse("sample") 

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

92 

93 def test_sample_page_status_code(self): 

94 self.assertEqual(self.response.status_code, 200) 1s

95 

96 def test_sample_page_template(self): 

97 self.assertTemplateUsed(self.response, "pages/sample.html") 1t

98 

99 def test_sample_page_contains_correct_html(self): 

100 self.assertContains(self.response, "Sample Page 1") 1u

101 

102 def test_sample_page_does_not_contain_incorrect_html(self): 

103 self.assertNotContains(self.response, "Please Go Away") 1v

104 

105 def test_sample_page_url_resolves_sample_page_view(self): 

106 view = resolve("/sample/") 1e

107 self.assertEqual( 1e

108 view.func.__name__, 

109 SampleView.__name__, 

110 ) 

111 

112 

113class SuccessViewTests(SimpleTestCase): 

114 def setUp(self): 

115 url = reverse("success") 

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

117 

118 def test_success_page_status_code(self): 

119 self.assertEqual(self.response.status_code, 200) 1w

120 

121 def test_success_page_template(self): 

122 self.assertTemplateUsed(self.response, "pages/success.html") 1x

123 

124 def test_success_page_contains_correct_html(self): 

125 self.assertContains( 1y

126 self.response, 

127 "Success! Thank you for your message.", 

128 ) 

129 

130 def test_success_page_does_not_contain_incorrect_html(self): 

131 self.assertNotContains(self.response, "Please Go Away") 1z

132 

133 def test_success_page_url_resolves_success_page_view(self): 

134 view = resolve("/success/") 1f

135 self.assertEqual( 1f

136 view.func.__name__, 

137 SuccessView.__name__, 

138 )