Пример #1
0
def create_zosia(commit=True, **kwargs):
    time = now()
    place, _ = Place.objects.get_or_create(name='Mieszko',
                                           address='FooBar@Katowice')
    defaults = {
        'active': False,
        'start_date': time,
        'place': place,
        'registration_start': time,
        'registration_end': timedelta_since_now(minutes=10),
        'rooming_start': timedelta_since_now(days=-1),
        'rooming_end': timedelta_since_now(days=1),
        'lecture_registration_start': time,
        'lecture_registration_end': timedelta_since_now(minutes=10),
        'price_accommodation': PRICE_ACCOMMODATION,
        'price_accommodation_breakfast': PRICE_BREAKFAST,
        'price_accommodation_dinner': PRICE_DINNER,
        'price_whole_day': PRICE_FULL,
        'price_base': PRICE_BASE,
        'price_transport': PRICE_TRANSPORT,
        'account_number': 'PL59 1090 2402 4156 9594 3379 3484',
        'account_owner': 'Joan Doe',
        'account_bank': 'SuperBank',
        'account_address': 'ul. Fajna 42, 51-109, Wrocław'
    }
    defaults.update(kwargs)
    zosia = Zosia(**defaults)
    if commit:
        zosia.save()
    return zosia
Пример #2
0
def create_zosia(commit=True, **kwargs):
    time = now()
    place, _ = Place.objects.get_or_create(name='Mieszko',
                                           address='FooBar@Katowice')
    defaults = {
        'active': False,
        'start_date': time,
        'place': place,
        'registration_start': time,
        'registration_end': time,
        'rooming_start': timedelta_since_now(days=-1),
        'rooming_end': timedelta_since_now(days=1),
        'lecture_registration_start': time,
        'lecture_registration_end': time,
        'price_accomodation': PRICE_ACCOMODATION,
        'price_accomodation_breakfast': PRICE_BREAKFAST,
        'price_accomodation_dinner': PRICE_DINNER,
        'price_whole_day': PRICE_BONUS,
        'price_base': PRICE_BASE,
        'price_transport': PRICE_TRANSPORT,
        'account_number': '',
    }
    defaults.update(kwargs)
    zosia = Zosia(**defaults)
    if commit:
        zosia.save()
    return zosia
Пример #3
0
    def make(self, user, expiration_date=None):
        if expiration_date is None:
            expiration_date = timedelta_since_now(delta=ROOM_LOCK_TIMEOUT)

        return self.create(user=user,
                           password=random_string(4),
                           expiration_date=expiration_date)
Пример #4
0
    def test_room_is_unlocked_after_expiration_date(self):
        self.room_1.join(self.normal_1)
        self.room_1.set_lock(self.normal_1,
                             expiration_date=timedelta_since_now(days=-30))
        room_assertions.assertUnlocked(self.room_1)

        self.room_1.join(self.normal_2)
        room_assertions.assertJoined(self.normal_2, self.room_1)
Пример #5
0
    def test_staff_cannot_lock_room_for_nonexisting_user(self):
        self.client.force_authenticate(user=self.staff_1)

        expiration_date = timedelta_since_now(days=1)
        data = {"user": 0, "expiration_date": expiration_date}
        response = self.client.post(self.url_2, data)

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Пример #6
0
 def test_get_regular_user_after_registration_without_prefs(self):
     self.client.login(email="*****@*****.**",
                       password="******")
     self.zosia.registration_end = timedelta_since_now(hours=-1)
     self.zosia.save()
     response = self.client.get(self.url, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertRedirects(response, reverse('index'))
Пример #7
0
    def test_staff_cannot_lock_nonexisting_room(self):
        self.client.force_authenticate(user=self.staff_2)

        url = reverse("rooms_api_lock", kwargs={"version": "v1", "pk": 0})
        expiration_date = timedelta_since_now(days=1)
        data = {"user": self.normal_1.pk, "expiration_date": expiration_date}
        response = self.client.post(url, data)

        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
Пример #8
0
    def test_staff_can_lock_locked_room(self):
        self.room_1.join(self.normal_1)
        self.room_1.set_lock(self.normal_1)
        room_assertions.assertLocked(self.room_1, self.normal_1)

        self.room_1.set_lock(self.normal_1, self.staff_1,
                             expiration_date=timedelta_since_now(days=7))
        self.refresh()
        room_assertions.assertLocked(self.room_1, self.normal_1)
Пример #9
0
    def test_user_cannot_join_before_rooming_starts(self):
        self.client.force_authenticate(user=self.normal_1)
        create_user_preferences(self.normal_1,
                                self.zosia,
                                payment_accepted=True)
        self.zosia.rooming_start = timedelta_since_now(days=7)
        self.zosia.save()

        data = {"user": self.normal_1.pk}
        response = self.client.post(self.url_1, data)
        self.room_1.refresh_from_db()

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Пример #10
0
    def test_staff_can_add_user_to_room_after_rooming_ends(self):
        self.client.force_authenticate(user=self.staff_1)
        create_user_preferences(self.normal_1,
                                self.zosia,
                                payment_accepted=True)
        self.zosia.rooming_end = timedelta_since_now(days=-7)
        self.zosia.save()

        data = {"user": self.normal_1.pk}
        response = self.client.post(self.url_1, data)
        self.room_1.refresh_from_db()

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        room_assertions.assertJoined(self.normal_1, self.room_1)
Пример #11
0
    def test_get_regular_user_after_registration_with_prefs(self):
        self.client.login(email="*****@*****.**",
                          password="******")
        self.zosia.registration_end = timedelta_since_now(hours=-1)
        self.zosia.save()
        org = create_organization(name='ksi', accepted=True)
        user_prefs = create_user_preferences(self.normal,
                                             self.zosia,
                                             organization=org)
        response = self.client.get(self.url, follow=True)
        self.assertEqual(response.status_code, 200)

        context = response.context[-1]
        self.assertEqual(context['form'].__class__, UserPreferencesForm)
        self.assertEqual(context['object'], user_prefs)
Пример #12
0
    def test_staff_can_lock_room_with_expiration_date(self):
        self.client.force_authenticate(user=self.staff_1)
        create_user_preferences(self.normal_1,
                                self.zosia,
                                payment_accepted=True)

        self.room_1.join(self.normal_1)

        expiration_date = timedelta_since_now(days=1)
        data = {"user": self.normal_1.pk, "expiration_date": expiration_date}
        response = self.client.post(self.url_1, data)
        self.room_1.refresh_from_db()

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        room_assertions.assertLocked(self.room_1, self.normal_1)
        self.assertEqual(self.room_1.lock.expiration_date, expiration_date)
Пример #13
0
    def test_user_can_unlock_after_rooming_ends(self):
        self.client.force_authenticate(user=self.normal_2)
        create_user_preferences(self.normal_2,
                                self.zosia,
                                payment_accepted=True)

        self.room_2.join(self.normal_2)
        self.room_2.set_lock(self.normal_2)

        self.zosia.rooming_end = timedelta_since_now(days=-7)
        self.zosia.save()

        response = self.client.post(self.url_2, {})
        self.room_2.refresh_from_db()

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        room_assertions.assertLocked(self.room_2, self.normal_2)
Пример #14
0
    def test_staff_can_lock_before_rooming_starts(self):
        self.client.force_authenticate(user=self.staff_1)
        create_user_preferences(user=self.normal_1,
                                zosia=self.zosia,
                                payment_accepted=True)

        self.room_1.join(self.normal_1)

        self.zosia.rooming_start = timedelta_since_now(days=7)
        self.zosia.save()

        data = {"user": self.normal_1.pk}
        response = self.client.post(self.url_1, data, format="json")
        self.room_1.refresh_from_db()

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        room_assertions.assertLocked(self.room_1, self.normal_1)
Пример #15
0
def create_active_zosia(place, **kwargs):
    today = now()
    start_date = timedelta_since_now(days=350)
    start = today
    end = start_date
    data = {
        'active': True,
        'place': place,
        'registration_start': start,
        'registration_end': end,
        'start_date': start_date,
        'rooming_start': start,
        'rooming_end': end,
        'lecture_registration_start': start,
        'lecture_registration_end': end,
    }
    return create_zosia(**data)
Пример #16
0
 def setUp(self):
     time = now()
     place = Place.objects.create(name="Mieszko", address="foo")
     self.zosia = Zosia.objects.create(
         start_date=timedelta_since_now(days=1),
         active=True,
         place=place,
         price_accommodation=23,
         registration_end=time,
         registration_start=time,
         rooming_start=time,
         rooming_end=time,
         price_transport=0,
         lecture_registration_start=time,
         lecture_registration_end=time,
         price_accommodation_dinner=0,
         price_accommodation_breakfast=0,
         price_whole_day=0)
     self.user = create_user(0)