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

41 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-08-31 09:09 -0700

1from django.contrib.auth import get_user_model 

2from django.test import TestCase 

3from django.urls import reverse 

4 

5from ..models import Entry, Topic # noqa:F401 

6from ..views import topic, topics # noqa:F401 

7 

8 

9class TopicPageViewTest(TestCase): 

10 def setUp(self): 

11 User = get_user_model() 

12 self.user = User.objects.create_user( 

13 username="kevin", 

14 email="kevin@example.com", 

15 password="secret", 

16 ) 

17 

18 self.topic = Topic.objects.create( 

19 text="A Topic title", 

20 owner=self.user, 

21 ) 

22 

23 self.entry = Topic.objects.create( 

24 # topic = self.entry.topic, 

25 text="Entry text", 

26 owner=self.user, 

27 ) 

28 

29 def test_topic_content(self): 

30 self.assertEqual(f"{self.topic.text}", "A Topic title") 1f

31 self.assertEqual(f"{self.topic.owner}", "kevin") 1f

32 

33 def test___str__(self): 

34 assert self.topic.__str__() == self.topic.text 1g

35 assert str(self.topic) == self.topic.text 1g

36 

37 def test_topic_create_view(self): 

38 self.client.login(email="kevin@example.com", password="secret") 1b

39 response = self.client.post( 1b

40 reverse("new_topic"), 

41 { 

42 "text": "This is a new topic", 

43 }, 

44 ) 

45 self.assertEqual(response.status_code, 302) 1b

46 self.assertEqual(Topic.objects.last().text, "This is a new topic") 1b

47 self.assertEqual(Topic.objects.first().text, "A Topic title") 1b

48 self.assertTemplateUsed("learning_logs/new_topic.html") 1b

49 # self.assertEqual(Article.objects.last().body, "Nice body content") 

50 

51 def test_topic_list_single(self): 

52 self.client.login(email="kevin@example.com", password="secret") 1c

53 response = self.client.get( 1c

54 reverse("topic", args={self.topic.id}), 

55 # reverse("topic"), 

56 ) 

57 self.assertEqual(response.status_code, 200) 1c

58 self.assertEqual(Topic.objects.first().text, "A Topic title") 1c

59 self.assertTemplateUsed("learning_logs/topic.html") 1c

60 

61 def test_topics_list_page(self): 

62 self.client.login(email="kevin@example.com", password="secret") 1d

63 response = self.client.get( 1d

64 # reverse("topics", args={self.topic.id}), 

65 reverse("topics"), 

66 ) 

67 self.assertEqual(response.status_code, 200) 1d

68 self.assertTemplateUsed("learning_logs/topics.html") 1d

69 # self.assertEqual(Topic.objects.first().text, "A Topic title") 

70 

71 def test_create_new_entry(self): 

72 self.client.login(email="kevin@example.com", password="secret") 1e

73 response = self.client.post( 1e

74 reverse("new_entry", args={self.topic.id}), 

75 { 

76 "text": "This is a new entry", 

77 }, 

78 ) 

79 self.assertEqual(response.status_code, 302) 1e

80 self.assertTemplateUsed("learning_logs/new_entry.html") 1e

81 

82 """ 

83 def test_create_new_entry(self): 

84 self.client.login(email="kevin@example.com", password="secret") 

85 response = self.client.post( 

86 reverse("edit_entry", args={self.entry.id}), 

87 { 

88 "text": "This is an edited entry", 

89 }, 

90 ) 

91 self.assertEqual(response.status_code, 302) 

92 self.assertTemplateUsed("learning_logs/edit_entry.html") 

93 """