Skip to content
Snippets Groups Projects
Commit 31dcda2b authored by grollicus's avatar grollicus
Browse files

Merge branch 'develop' into 'production'

duration in schedule.xml

See merge request hub/hub!668
parents f2ee9caf d7d243f3
Branches
Tags
No related merge requests found
......@@ -87,7 +87,7 @@ class ScheduleEncoder(json.JSONEncoder):
days = duration.days
hours = duration.seconds // 3600
minutes = duration.seconds // 60
minutes = (duration.seconds % 3600) // 60
if days:
return f"{days}:{hours:02d}:{minutes:02d}"
return f"{hours:02d}:{minutes:02d}"
......
......@@ -22,7 +22,7 @@ class ScheduleTest(TestCase):
self.conf.save()
self.conf.tracks.create(slug='community', name='Community').save()
self.conf.tracks.create(slug='security', name='Security').save()
self.assembly = Assembly(name='TestAssembly', slug='asmbly', conference=self.conf)
self.assembly = Assembly(name='TestAssembly', slug='asmbly', conference=self.conf, state_assembly=Assembly.State.PLACED)
self.assembly.save()
self.room = Room(conference=self.conf, assembly=self.assembly, name='Foo Room', room_type=Room.RoomType.STAGE)
self.room.save()
......@@ -261,6 +261,34 @@ class ScheduleTest(TestCase):
self.assertEqual(400, resp.status_code, f'Unexpected success result from POST: {resp.content}')
def testScheduleExport(self):
# TODO write this test. This just tests some duration formatting edge cases for now
r = self.assembly.rooms.create(conference=self.conf, name='Zelt', room_type='stage')
ev1 = Event(
conference=self.conf,
assembly=self.assembly,
room=r,
name='Example Event',
is_public=True,
schedule_start=self.conf.start,
schedule_duration=timedelta(minutes=120),
)
ev1.save()
resp = self.client.get(reverse('api:conference-schedule', kwargs={'conference': self.conf.slug}) + '.xml')
self.assertEqual(resp.status_code, 200)
content = ET.fromstring(resp.content.decode('utf-8'))
day1, *remaining_days = content.findall('day')
for remaining_day in remaining_days:
self.assertEqual(len(remaining_day), 0)
room, = day1
event1, = room
self.assertEqual(event1.findtext('title'), ev1.name)
self.assertEqual(event1.findtext('date'), '2020-12-27T01:23:45+01:00')
self.assertEqual(event1.findtext('start'), '01:23')
self.assertEqual(event1.findtext('duration'), '02:00')
def test_cache(self):
event = Event(conference=self.conf, assembly=self.assembly, name='Example Event', is_public=False)
event.save()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment