[docs]classParkingTest(IonTestCase):"""Tests for the parking module."""deflogin_with_args(self,uname,grad_year):user=get_user_model().objects.get_or_create(username=uname,graduation_year=grad_year)[0]withself.settings(MASTER_PASSWORD="pbkdf2_sha256$24000$qp64pooaIEAc$j5wiTlyYzcMu08dVaMRus8Kyfvn5ZfaJ/Rn+Z/fH2Bw="):self.client.login(username=uname,password="dankmemes")returnuserdeftest_parking_form_junior(self):user=self.login_with_args("awilliam",get_senior_graduation_year()+1)response=self.client.get(reverse("parking"))self.assertEqual(200,response.status_code)response=self.client.post(reverse("parking_form"),data={"email":user.tj_email,"mentorship":False})self.assertEqual(response.status_code,302)# Check that a parking application was createdparking_apps=ParkingApplication.objects.filter(user=user)self.assertTrue(parking_apps.exists())self.assertEqual(parking_apps.count(),1)response=self.client.get(reverse("parking_joint"))self.assertEqual(200,response.status_code)response=self.client.get(reverse("parking_car"))self.assertEqual(200,response.status_code)response=self.client.post(reverse("parking_car"),data={"license_plate":"TJCSL","make":"Lamborghini","model":"Veneno","year":2018})self.assertEqual(response.status_code,302)# Check that a parking application was createdcar_apps=CarApplication.objects.filter(user=user)self.assertTrue(car_apps.exists())self.assertEqual(car_apps.count(),1)# Check for association with parking formparking_apps=ParkingApplication.objects.filter(user=user)self.assertTrue(parking_apps[0].cars.count(),1)deftest_invalid_user(self):user=self.login_with_args("bwilliam",get_senior_graduation_year()+2)response=self.client.get(reverse("parking"),follow=True)self.assertEqual(200,response.status_code)self.assertIn("You can't request a parking space.",list(map(str,list(response.context["messages"]))))response=self.client.post(reverse("parking_form"),data={"email":user.tj_email,"mentorship":False})# Check that parking application was not createdself.assertEqual(response.status_code,302)self.assertFalse(ParkingApplication.objects.filter(user=user).exists())response=self.client.post(reverse("parking_car"),data={"license_plate":"TJCSL","make":"Lamborghini","model":"Veneno","year":"2018"})# Check that car application is not createdself.assertEqual(response.status_code,302)self.assertFalse(ParkingApplication.objects.filter(user=user).exists())
[docs]deftest_high_absences(self):"""Test the parking views with a user that has a high number of eighth period absences."""self.login_with_args("bwilliam",get_senior_graduation_year())withpatch("intranet.apps.users.models.User.absence_count",return_value=settings.PARKING_MAX_ABSENCES+1)asmock:response=self.client.get(reverse("parking_form"))self.assertEqual(302,response.status_code)mock.assert_called()