108 lines
4.1 KiB
Python
108 lines
4.1 KiB
Python
import json
|
|
from django.test import TestCase, Client
|
|
from django.urls import reverse
|
|
from django.utils import timezone
|
|
from django.contrib.auth.models import User
|
|
from .models import Department, Instructor, Student
|
|
|
|
class TestModels(TestCase):
|
|
def setUp(self):
|
|
self.peter = User.objects.create_user('Peter Templer', 'peter@testing.com', 'peterspassword321')
|
|
self.nick = User.objects.create_user('Nick Jenkins', 'nick@testing.com', 'nickspassword321')
|
|
self.department = Department.objects.create(name = "Blandings Castle")
|
|
self.student = Student.objects.create(
|
|
user = self.peter,
|
|
student_number = 357950,
|
|
department = self.department,
|
|
)
|
|
self.instructor = Instructor.objects.create(
|
|
user = self.nick,
|
|
department = self.department,
|
|
)
|
|
|
|
def test_student_user_relationship(self):
|
|
self.assertEquals(self.peter, self.student.user)
|
|
|
|
def test_student_get_absolute_url(self):
|
|
url = self.student.get_absolute_url()
|
|
self.assertEquals(url, '/accounts/1/')
|
|
|
|
def test_instructor_user_relationship(self):
|
|
self.assertEquals(self.nick, self.instructor.user)
|
|
|
|
def test_instructor_get_absolute_url(self):
|
|
url = self.instructor.get_absolute_url()
|
|
self.assertEquals(url, '/accounts/1/')
|
|
|
|
class TestViews(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.reverse_urls = {
|
|
'list': reverse('account-list'),
|
|
'create': reverse('account-create'),
|
|
'detail': reverse('account-detail', args=['1']),
|
|
'update': reverse('account-update', args=['1']),
|
|
'delete': reverse('account-delete', args=['1'])
|
|
}
|
|
|
|
self.peter = User.objects.create_user('Peter Templer', 'peter@testing.com', 'peterspassword321')
|
|
self.nick = User.objects.create_user('Nick Jenkins', 'nick@testing.com', 'nickspassword321')
|
|
self.department = Department.objects.create(name = "Blandings Castle")
|
|
self.student = Student.objects.create(
|
|
user = self.peter,
|
|
student_number = 357950,
|
|
department = self.department,
|
|
)
|
|
self.instructor = Instructor.objects.create(
|
|
user = self.nick,
|
|
department = self.department,
|
|
)
|
|
self.client.force_login(self.peter)
|
|
|
|
def test_students_list(self):
|
|
response = self.client.get(self.reverse_urls['list'])
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'accounts/account_list.html')
|
|
|
|
def test_students_create_GET(self):
|
|
response = self.client.get(self.reverse_urls['create'])
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'accounts/account_form.html')
|
|
|
|
def test_students_create_POST(self):
|
|
response = self.client.post(self.reverse_urls['create'], {
|
|
'user': self.peter.id,
|
|
'student_number': 357950,
|
|
'department': self.department,
|
|
}, follow=True)
|
|
|
|
self.assertRedirects(
|
|
response,
|
|
reverse('account-detail', args=[self.peter.id]),
|
|
status_code=302,
|
|
target_status_code=200,
|
|
fetch_redirect_response=True
|
|
)
|
|
|
|
def test_students_detail(self):
|
|
response = self.client.get(self.reverse_urls['detail'])
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'accounts/account_detail.html')
|
|
|
|
def test_students_update_GET(self):
|
|
response = self.client.get(self.reverse_urls['update'])
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'accounts/account_form.html')
|
|
|
|
def test_students_update_POST(self):
|
|
pass
|
|
|
|
def test_student_delete(self):
|
|
response = self.client.get(self.reverse_urls['delete'])
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'accounts/account_confirm_delete.html')
|
|
|
|
def test_student_delete(self):
|
|
response = self.client.delete(self.reverse_urls['delete'], json.dumps({ 'id': 1 }))
|
|
|
|
self.assertEquals(response.status_code, 302) |