def test_should_raise_error_when_end_primary_vehicle_permit_with_active_secondary_vehicle_permit( self, ): primary_start_time = timezone.make_aware(datetime(2021, 11, 15)) primary_end_time = get_end_time(primary_start_time, 6) primary_vehicle_permit = ParkingPermitFactory( customer=self.customer, primary_vehicle=True, contract_type=ContractType.FIXED_PERIOD, status=ParkingPermitStatus.VALID, start_time=primary_start_time, end_time=primary_end_time, month_count=6, ) secondary_start_time = timezone.make_aware(datetime( CURRENT_YEAR, 1, 1)) secondary_end_time = get_end_time(secondary_start_time, 2) ParkingPermitFactory( customer=self.customer, contract_type=ContractType.FIXED_PERIOD, status=ParkingPermitStatus.VALID, start_time=secondary_start_time, end_time=secondary_end_time, month_count=2, ) with self.assertRaises(PermitCanNotBeEnded): primary_vehicle_permit.end_permit( ParkingPermitEndType.AFTER_CURRENT_PERIOD)
def test_should_set_end_time_to_now_if_end_permit_immediately(self): start_time = timezone.make_aware(datetime(2021, 11, 15)) end_time = get_end_time(start_time, 6) permit = ParkingPermitFactory( contract_type=ContractType.FIXED_PERIOD, start_time=start_time, end_time=end_time, month_count=6, ) permit.end_permit(ParkingPermitEndType.IMMEDIATELY) self.assertEqual( permit.end_time, timezone.make_aware(datetime(2021, 11, 20, 12, 10, 50)))
def test_should_set_end_time_to_period_end_if_end_permit_after_current_period( self): start_time = timezone.make_aware(datetime(2021, 11, 15)) end_time = get_end_time(start_time, 6) permit = ParkingPermitFactory( contract_type=ContractType.FIXED_PERIOD, start_time=start_time, end_time=end_time, month_count=6, ) permit.end_permit(ParkingPermitEndType.AFTER_CURRENT_PERIOD) self.assertEqual( permit.end_time, timezone.make_aware(datetime(2021, 12, 14, 23, 59, 59, 999999)), )