Skip to content
Snippets Groups Projects
Select Git revision
  • c0dfb38a6957af8bb0040d7e68db7037754a08ee
  • master default protected
  • pw-autocomplete-off
  • redis-rate-limits
  • typehints
  • incremental-sync
  • test_instance_path
  • consistent_strings
  • qol_edits
  • v1.2.x
  • v1.x.x
  • v1.1.x
  • feature_invite_validuntil_minmax
  • Dockerfile
  • pylint_disable_consider-using-f-string
  • v1.0.x
  • roles-recursive-cte
  • v2.2.0
  • v2.1.0
  • v2.0.1
  • v2.0.0
  • v1.2.0
  • v1.1.2
  • v1.1.1
  • v1.0.2
  • v1.1.0
  • v1.0.1
  • v1.0.0
  • v0.3.0
  • v0.2.0
  • v0.1.5
  • v0.1.4
  • v0.1.2
33 results

test_remailer.py

Blame
  • Forked from uffd / uffd
    Source project has a limited visibility.
    create_redeem_token.py 2.55 KiB
    import uuid
    from datetime import datetime
    from http import HTTPStatus
    
    from rest_framework.authtoken.models import Token
    from zoneinfo import ZoneInfo
    
    from django.test import TestCase, override_settings
    from django.urls import reverse
    
    from core.models import Assembly, Badge, BadgeToken, Conference, PlatformUser
    
    TEST_CONF_ID = uuid.uuid4()
    
    
    @override_settings(SELECTED_CONFERENCE_ID=TEST_CONF_ID)
    class CreateRedeemTokenTests(TestCase):
        def setUp(self):
            tz = ZoneInfo('CET')
            self.conf = Conference(
                id=TEST_CONF_ID,
                slug='conf',
                name='TestConf',
                is_public=True,
                start=datetime(2020, 12, 27, 1, 23, 45, tzinfo=tz),
                end=datetime(2020, 12, 30, 23, 45, 00, tzinfo=tz),
            )
            self.conf.save()
            self.assembly = Assembly(name='TestAssembly', slug='asmbly', conference=self.conf, state=Assembly.State.PLACED)
            self.assembly.save()
    
            self.badge = Badge(
                conference=self.conf,
                issuing_assembly=self.assembly,
                name='Test Badge',
            )
            self.badge_token = self.badge.reset_token()
    
            self.user = PlatformUser(username='bernd', is_active=True)
            self.user.save()
    
            self.token = Token(user=self.user)
            self.token.save()
    
        def test_create_redeem_token_invalid_issuing_token(self):
            url = reverse('api:badge-token-create-with-token', kwargs={'assembly': self.assembly, 'issuing_token': 'invalid'})
            resp = self.client.post(url, {'issuing_token': 'test'})
            self.assertEqual(resp.status_code, 404)
    
        def test_create_redeem_token_limited(self):
            url = reverse('api:badge-token-create-with-token', kwargs={'assembly': self.assembly, 'issuing_token': self.badge_token})
            resp = self.client.post(url, {'issuing_token': self.badge_token, 'redeemable_count': 20})
            self.assertEqual(resp.status_code, HTTPStatus.CREATED)
            badge_token = BadgeToken.objects.get(badge=self.badge)
            self.assertEqual(str(badge_token.token), resp.json()['token'])
            self.assertEqual(badge_token.redeemable_count, 20)
    
        def test_create_redeem_token(self):
            url = reverse('api:badge-token-create-with-token', kwargs={'assembly': self.assembly, 'issuing_token': self.badge_token})
            resp = self.client.post(url, {})
            self.assertEqual(resp.status_code, HTTPStatus.CREATED)
            badge_token = BadgeToken.objects.get(badge=self.badge)
            self.assertEqual(str(badge_token.token), resp.json()['token'])
            self.assertEqual(badge_token.redeemable_count, 0)