105 lines
3.7 KiB
Python
105 lines
3.7 KiB
Python
from django.test import TestCase, Client
|
|
from django.urls import reverse
|
|
from django.utils import timezone
|
|
from django.contrib.auth.models import User
|
|
from accounts.models import Department, Instructor, Student
|
|
from .models import Code, Period
|
|
from .forms import AttendanceUpdateForm
|
|
|
|
# Code
|
|
# student
|
|
# station_number
|
|
# Period
|
|
# student
|
|
# station_number
|
|
|
|
class CodeModelTests(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,
|
|
)
|
|
|
|
self.code = Code.objects.create(student=self.student, station_number=22)
|
|
|
|
def test_code_qr_code_str(self):
|
|
"""test_qr_code_str() returns a string joining on ':' and contains student_number"""
|
|
self.assertEqual("357950:22", self.code.qr_code_str())
|
|
|
|
class TestForms(TestCase):
|
|
def setUp(self):
|
|
pass
|
|
|
|
def test_attendance_update_form(self):
|
|
form = AttendanceUpdateForm(data={
|
|
'qr_string': '357950:22'
|
|
})
|
|
|
|
self.assertTrue(form.is_valid())
|
|
|
|
class TestPeriodViews(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
self.reverse_urls = {
|
|
# 'list': reverse('period-list'),
|
|
# 'create': reverse('period-create'),
|
|
'detail': reverse('period-detail', args=['1']),
|
|
'update': reverse('period-update', args=['1']),
|
|
'delete': reverse('period-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.period = Period.objects.create(
|
|
student = self.student,
|
|
station_number = 22,
|
|
)
|
|
self.client.force_login(self.peter)
|
|
|
|
# def test_period_create_GET(self):
|
|
# response = self.client.get(self.reverse_urls['create'])
|
|
# self.assertEquals(response.status_code, 200)
|
|
# self.assertTemplateUsed(response, 'attendance/period_form.html')
|
|
|
|
# def test_period_create_POST(self):
|
|
# response = self.client.post(self.reverse_urls['create'], {
|
|
# 'student': self.student.id,
|
|
# 'station_number': 22,
|
|
# }, follow=True)
|
|
|
|
# self.assertRedirects(
|
|
# response,
|
|
# reverse('period-detail', args=[self.a_shift.id]),
|
|
# status_code=302,
|
|
# target_status_code=200,
|
|
# fetch_redirect_response=True
|
|
# )
|
|
|
|
def test_period_detail(self):
|
|
response = self.client.get(self.reverse_urls['detail'])
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'attendance/period_detail.html')
|
|
|
|
def test_period_update_GET(self):
|
|
response = self.client.get(self.reverse_urls['update'])
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'attendance/period_form.html')
|
|
|