diff --git a/src/api/tests/__init__.py b/src/api/tests/__init__.py index 63b4d921c6f34af9b38bc3ffc46446c07af9df8d..82daa5fb6d222d49d90eab1eb749750a57920fe0 100644 --- a/src/api/tests/__init__.py +++ b/src/api/tests/__init__.py @@ -1,4 +1,6 @@ +from .bbb import * # noqa: F401, F403 from .engelsystem import * # noqa: F401, F403 +from .schedule import * # noqa: F401, F403 from .workadventure import * # noqa: F401, F403 __all__ = '*' diff --git a/src/api/tests/schedule.py b/src/api/tests/schedule.py new file mode 100644 index 0000000000000000000000000000000000000000..afeea7f0ae3db02b2e122f370fd7ca0e74a82b79 --- /dev/null +++ b/src/api/tests/schedule.py @@ -0,0 +1,61 @@ +import json + +from django.test import TestCase +from django.urls import reverse +from rest_framework.authtoken.models import Token + +from core.models import Assembly, Conference, Event, PlatformUser, Room + + +class ScheduleTest(TestCase): + def test_push_event(self): + conf = Conference(slug='conf', name='TestConf', is_public=True) + conf.save() + conf.tracks.create(name='Community').save() + assembly = Assembly(name='TestAssembly', slug='asmbly', conference=conf) + assembly.save() + room = Room(conference=conf, assembly=assembly, name='Foo Room', room_type=Room.RoomType.STAGE) + room.save() + + user = PlatformUser(username='bernd', is_active=True) + user.save() + + token = Token(user=user) + token.save() + + event = Event(conference=conf, assembly=assembly, name='Example Event') + event.save() + + update = { + "url": "https://fahrplan.events.ccc.de/rc3/2020/Fahrplan/events/11583.html", + "id": 11583, + "guid": str(event.id), + "logo": None, + "date": "2020-12-27T12:20:00+01:00", + "start": "12:20", + "duration": "00:30", + "room": "foo room", + "slug": "rc3-11583-rc3_eroffnung", + "title": "#rC3 Er\u00f6ffnung", + "subtitle": "", + "track": "Community", + "type": "Talk", + "language": "de", + "abstract": "Willkommen zur ersten und hoffentlich einzigen Remote Chaos Experience!", + "description": "", + "recording_license": "", + "do_not_record": False, + "persons": [{"id": 14151, "public_name": "blubbel"}], + "links": [], + "attachments": [] + } + + url = reverse('api:event-schedule', kwargs={'conference': conf.slug, 'pk': event.pk}) + + with self.modify_settings(API_USERS={'append': user.username}): + resp = self.client.post(url, json.dumps(update), content_type='application/json', HTTP_AUTHORIZATION=f'Token {token.key}') + + self.assertEqual(201, resp.status_code, f'Unexpected result from POST: {resp.content}') + + event.refresh_from_db() + self.assertTrue('rC3' in event.name, f'Expected "rC3" in event name "{event.name}".')