-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtest_views.py
68 lines (53 loc) · 2.71 KB
/
test_views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from django.test import TestCase
from django.urls import reverse
from ..models import Bug, Attachment
from users.models import CustomUser
class HomePageViewTest(TestCase):
@classmethod
def setUpTestData(cls):
cls.test_user = CustomUser.objects.create_user(username='testuser', password='12345')
cls.test_user.save()
def setUp(self):
# Log in the test user
self.client.login(username='testuser', password='testpass')
def test_homepage_view_url_exists_at_desired_location(self):
response = self.client.get("/")
self.assertEqual(response.status_code, 200)
def test_homepage_view_url_accessible_by_name(self):
response = self.client.get(reverse("bugs:homepage"))
self.assertNotEqual(response.status_code, 200)
def test_homepage_view_uses_the_right_template(self):
self.client.login(username='testuser', password='12345')
response = self.client.get(reverse("bugs:homepage"))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "bugs/bug_list.html")
class BugFormViewTest(TestCase):
@classmethod
def setUpTestData(cls):
cls.test_user = CustomUser.objects.create_user(username='testuser', password='12345')
cls.test_user.save()
def setUp(self):
# Log in the test user
self.client.login(username='testuser', password='12345')
# self.bug_form_url = reverse("bugs:register_bug")
def test_redirect_if_not_logged_in(self):
self.client.logout()
response = self.client.get(reverse("bugs:register_bug"))
self.assertEqual(response.status_code, 200)
# response = self.client.get(self.bug_form_url)
# self.assertRedirects(response, f'/accounts/login/?next={reverse("bugs:register_bug")}')
def test_view_url_exists_at_desired_location(self):
response = self.client.get(reverse("bugs:register_bug"))
# response = self.client.get(self.bug_form_url)
self.assertNotEqual(response.status_code, 200)
def test_view_uses_correct_template(self):
response = self.client.get(reverse("bugs:register_bug"))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'bugs/register_bug.html')
def test_successful_form_submission(self):
response = self.client.post(reverse("bugs:register_bug"), {'title': 'Test Bug', 'description': 'Just a test'})
self.assertEqual(Bug.objects.count(), 1)
self.assertRedirects(response, reverse('bugs:homepage'))
def test_form_errors_for_invalid_data(self):
response = self.client.post(reverse("bugs:register_bug"), {})
self.assertFormError(response, 'form', 'title', 'This field is required.')