Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.test import TestCase
- from .models import CourseInstance, Token, Student
- from .auth import auth_and_get_token
- from django.contrib.auth.models import User
- from .student_functions import sign_up_for_course
- from django.core import serializers
- import json
- from unittest.mock import MagicMock
- # https://docs.djangoproject.com/en/3.0/topics/auth/default/
- class CourseInstanceTestCase(TestCase):
- def setUp(self):
- u1 = User.objects.create_user('test1')
- u2 = User.objects.create_user('test2')
- s1 = Student.objects.create(user=u1, registration_rights=True)
- s2 = Student.objects.create(user=u2, registration_rights=True)
- CourseInstance.objects.create(
- teacher="Roman Ptak", maxStudents=1)
- def test_sign_up_without_registration_rights(self):
- course = CourseInstance.objects.get(teacher='Roman Ptak')
- user1 = Student.objects.get(user__username='test1')
- user1.registration_rights = False
- user1.save()
- with self.assertRaises(ValueError):
- success = sign_up_for_course(user1, course)
- def test_sign_up_without_registration_rights_mock(self):
- course = CourseInstance.objects.get(teacher='Roman Ptak')
- #TU JEST MOCKUP STUDENTA
- user = Student()
- user.registration_rights = MagicMock(return_value=False)
- user.registration_rights = False
- with self.assertRaises(ValueError):
- success = sign_up_for_course(user, course)
- def test_assign_more_students_than_possible(self):
- user1 = Student.objects.get(user__username='test1')
- user2 = Student.objects.get(user__username='test2')
- course = CourseInstance.objects.get(teacher='Roman Ptak')
- # Sign up the first student,
- # course reaches maximum capacity
- success = sign_up_for_course(user1, course)
- self.assertTrue(success)
- # Sign up the second student,
- # should disallow saving
- success = sign_up_for_course(user2, course)
- self.assertFalse(success)
- def test_sign_up_for_course_check_attendants(self):
- user1 = Student.objects.get(user__username='test1')
- course: CourseInstance = CourseInstance.objects.get(
- teacher='Roman Ptak')
- sign_up_for_course(user1, course)
- self.assertIn(user1, course.attendants.all())
- def test_get_courses_json(self):
- courses = CourseInstance.objects.all()
- data = serializers.serialize("json", courses)
- json.loads(data) # Try to parse the JSON to see if its valid
- pass # Pass if no exception is thrown
- class LoginTestCase(TestCase):
- def setUp(self):
- user = User.objects.create_user(
- 'romanptak', 'roman.ptak@pwr.edu.pl', '123')
- def test_log_in_correct_password(self):
- # Check if correct credentials authenticate the user
- token = auth_and_get_token(login='romanptak', password='123')
- self.assertIsNotNone(token)
- def test_log_in_incorrect_password(self):
- # Check if correct credentials authenticate the user
- token = auth_and_get_token(login='romanptak', password='error')
- self.assertIsNone(token)
- class TokenTestCase(TestCase):
- def setUp(self):
- user = User.objects.create_user(
- 'romanptak', 'roman.ptak@pwr.edu.pl', '123')
- def test_new_token_is_saved(self):
- num_of_tokens_before_login = len(Token.objects.all())
- # Check if correct credentials authenticate the user
- token = auth_and_get_token(login='romanptak', password='123')
- num_of_tokens_after_login = len(Token.objects.all())
- self.assertLess(num_of_tokens_before_login, num_of_tokens_after_login)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement