Ejemplo n.º 1
0
    def test_user_cannot_view_other_users_payments(self):
        other_user = generate_user(username="******")
        attend_user_to_event(self.event, other_user)
        payment_relation = pay_for_event(self.event, other_user)

        response = self.client.get(self.id_url(payment_relation.id),
                                   **self.headers)

        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
        self.assertEqual(response.json().get("detail"), "Ikke funnet.")
Ejemplo n.º 2
0
    def test_dump_data_contains_companies(self):
        self.event = generate_company_event()
        attend_user_to_event(user=self.user, event=self.event)

        response = self.client.get(self.id_url(self.user.id), **self.headers)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(
            response.json().get("attendees")[0].get("companies"),
            [{
                "name": "onlinecorp"
            }],
        )
Ejemplo n.º 3
0
    def test_user_can_unregister_before_deadline(self):
        self.event.attendance_event.unattend_deadline = timezone.now(
        ) + timezone.timedelta(days=2)
        self.event.event_start = timezone.now() + timezone.timedelta(days=3)
        self.event.attendance_event.save()
        self.event.save()
        attend_user_to_event(self.event, self.user)

        response = self.client.delete(self.get_unregister_url(self.event.id),
                                      **self.headers)

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertFalse(self.event.attendance_event.is_attendee(self.user))
Ejemplo n.º 4
0
    def test_user_can_re_register_for_an_event_after_unregistering(self, _):
        attend_user_to_event(self.event, self.user)
        self.event.attendance_event.unattend_deadline = timezone.now(
        ) + timezone.timedelta(days=2)
        self.event.attendance_event.guest_attendance = True
        self.event.event_start = timezone.now() + timezone.timedelta(days=3)
        self.event.attendance_event.save()
        self.event.save()
        self.client.delete(self.get_unregister_url(self.event.id),
                           **self.headers)

        response = self.client.post(self.get_register_url(self.event.id),
                                    self.recaptcha_arg, **self.headers)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
Ejemplo n.º 5
0
    def test_user_cannot_unregister_after_deadline_has_passed(self):
        self.event.attendance_event.unattend_deadline = timezone.now(
        ) - timezone.timedelta(days=2)
        self.event.attendance_event.save()
        attend_user_to_event(self.event, self.user)

        response = self.client.delete(self.get_unregister_url(self.event.id),
                                      **self.headers)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        self.assertTrue(self.event.attendance_event.is_attendee(self.user))
        self.assertEqual(
            response.json().get("detail"),
            "Avmeldingsfristen har gått ut, det er ikke lenger mulig å melde seg av arrangementet.",
        )
Ejemplo n.º 6
0
    def test_user_cannot_register_twice(self, _):
        attendance = self.event.attendance_event
        initial_attendees = len(attendance.attendees.all())
        attend_user_to_event(attendance.event, self.user)

        response = self.client.post(self.get_register_url(self.event.id),
                                    self.recaptcha_arg, **self.headers)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        self.assertEqual(
            response.json().get("detail"),
            "Du er allerede meldt på dette arrangementet.",
        )
        self.assertEqual(len(attendance.attendees.all()),
                         initial_attendees + 1)
Ejemplo n.º 7
0
    def test_user_cannot_register_twice(self, _):
        attendance = self.event.attendance_event
        initial_attendees = len(attendance.attendees.all())
        attend_user_to_event(attendance.event, self.user)

        response = self.client.post(
            self.get_register_url(self.event.id), self.recaptcha_arg, **self.headers
        )

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        self.assertEqual(
            response.json().get("detail"),
            StatusCode.ALREADY_SIGNED_UP.message,
        )
        self.assertEqual(len(attendance.attendees.all()), initial_attendees + 1)
Ejemplo n.º 8
0
    def test_dump_data_contains_attendees(self):
        self.event = generate_event()
        self.attendee1 = attend_user_to_event(user=self.user, event=self.event)

        response = self.client.get(self.id_url(self.user.id), **self.headers)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.json().get("attendees")), 1)
Ejemplo n.º 9
0
    def test_user_cannot_unregister_after_event_has_started(self):
        self.event.attendance_event.unattend_deadline = timezone.now(
        ) + timezone.timedelta(days=2)
        self.event.event_start = timezone.now() - timezone.timedelta(hours=1)
        self.event.attendance_event.save()
        self.event.save()
        attend_user_to_event(self.event, self.user)

        response = self.client.delete(self.get_unregister_url(self.event.id),
                                      **self.headers)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        self.assertTrue(self.event.attendance_event.is_attendee(self.user))
        self.assertEqual(
            response.json().get("detail"),
            "Du kan ikke melde deg av et arrangement som allerede har startet.",
        )
Ejemplo n.º 10
0
    def test_non_admin_cannot_administrate_their_own_attendee(self):
        self.user.groups.remove(self.committee)
        attendee = attend_user_to_event(self.event, self.user)
        attendee.paid = False
        attendee.save()

        response = self.client.patch(
            self.get_administrate_url(self.attendee1.id), {"paid": True},
            **self.headers)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Ejemplo n.º 11
0
    def test_admin_can_administrate_their_own_attendee(self):
        attendee = attend_user_to_event(self.event, self.user)
        attendee.paid = False
        attendee.save()

        response = self.client.patch(
            self.get_administrate_url(self.attendee1.id), {"paid": True},
            **self.headers)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.json().get("paid"), True)
Ejemplo n.º 12
0
    def test_user_can_change_own_attendee(self):
        attendee = attend_user_to_event(self.event, self.user)
        attendee.show_as_attending_event = False
        attendee.save()

        response = self.client.patch(
            self.get_change_url(attendee.id),
            {"show_as_attending_event": True},
            **self.headers,
        )

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.json().get("show_as_attending_event"), True)
Ejemplo n.º 13
0
    def test_event_with_group_restriction(self):
        response = self.client.get(self.get_detail_url(self.event.id),
                                   **self.headers)
        self.assertEqual(response.status_code, status.HTTP_200_OK)

        restricted_to_group: Group = G(Group)
        G(GroupRestriction, event=self.event, groups=[restricted_to_group])

        response = self.client.get(self.get_detail_url(self.event.id),
                                   **self.headers)
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)

        attendee = attend_user_to_event(self.event, self.user)

        self.assertIn(attendee, self.event.attendance_event.attendees.all())
        response = self.client.get(self.get_detail_url(self.event.id),
                                   **self.headers)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Ejemplo n.º 14
0
    def setUp(self):
        self.committee = G(Group, name='arrKom')
        self.user = generate_user(username='******')
        self.token = self.generate_access_token(self.user)
        self.headers = {
            **self.generate_headers(),
            **self.bare_headers,
        }

        self.url = reverse('payment_relations-list')
        self.id_url = lambda _id: self.url + str(_id) + '/'
        date_next_year = timezone.now() + timezone.timedelta(days=366)
        self.mock_card = {
            'number': '4242424242424242',
            'exp_month': 12,
            'exp_year': date_next_year.year,
            'cvc': '123'
        }
        self.mock_3d_secure_card = {
            'number': '4000000000003220',
            'exp_month': 12,
            'exp_year': date_next_year.year,
            'cvc': '123',
        }
        stripe.api_key = settings.STRIPE_PUBLIC_KEYS['arrkom']
        self.payment_method = stripe.PaymentMethod.create(type='card',
                                                          card=self.mock_card)
        self.secure_payment_method = stripe.PaymentMethod.create(
            type='card', card=self.mock_3d_secure_card)

        self.event = generate_event(organizer=self.committee)
        self.event.event_end = timezone.now() + timezone.timedelta(days=3)
        self.event.event_start = timezone.now() + timezone.timedelta(days=2)
        self.event.attendance_event.registration_end = timezone.now(
        ) + timezone.timedelta(days=1)
        self.event.attendance_event.unattend_deadline = timezone.now(
        ) + timezone.timedelta(days=1)
        self.event.save()
        self.event.attendance_event.save()

        self.payment = generate_event_payment(self.event)
        self.attendee = attend_user_to_event(self.event, self.user)
Ejemplo n.º 15
0
    def setUp(self):
        self.committee = G(Group, name="Arrkom")
        self.user = generate_user(username="******")
        self.token = self.generate_access_token(self.user)
        self.headers = {**self.generate_headers(), **self.bare_headers}

        self.url = reverse("payment_relations-list")
        self.id_url = lambda _id: self.url + str(_id) + "/"
        date_next_year = timezone.now() + timezone.timedelta(days=366)
        self.mock_card = {
            "number": "4242424242424242",
            "exp_month": 12,
            "exp_year": date_next_year.year,
            "cvc": "123",
        }
        self.mock_3d_secure_card = {
            "number": "4000000000003220",
            "exp_month": 12,
            "exp_year": date_next_year.year,
            "cvc": "123",
        }
        stripe.api_key = settings.STRIPE_PUBLIC_KEYS["arrkom"]
        self.payment_method = stripe.PaymentMethod.create(type="card",
                                                          card=self.mock_card)
        self.secure_payment_method = stripe.PaymentMethod.create(
            type="card", card=self.mock_3d_secure_card)

        self.event = generate_event(organizer=self.committee)
        self.event.event_end = timezone.now() + timezone.timedelta(days=3)
        self.event.event_start = timezone.now() + timezone.timedelta(days=2)
        self.event.attendance_event.registration_end = (
            timezone.now() + timezone.timedelta(days=1))
        self.event.attendance_event.unattend_deadline = (
            timezone.now() + timezone.timedelta(days=1))
        self.event.save()
        self.event.attendance_event.save()

        self.payment = generate_event_payment(self.event)
        self.attendee = attend_user_to_event(self.event, self.user)
Ejemplo n.º 16
0
def generate_attendee(event, username, rfid):
    user = G(OnlineUser, username=username, rfid=rfid)
    return attend_user_to_event(event, user)