Fix cueout for overlapping starts & ends schedule
This commit is contained in:
parent
ffb8c49784
commit
d8c5206e2e
3 changed files with 95 additions and 9 deletions
62
api/libretimeapi/tests/models/test_schedule.py
Normal file
62
api/libretimeapi/tests/models/test_schedule.py
Normal file
|
@ -0,0 +1,62 @@
|
|||
from datetime import datetime, timedelta
|
||||
|
||||
from django.test import SimpleTestCase
|
||||
from libretimeapi.models import Schedule, Show, ShowInstance
|
||||
|
||||
|
||||
class TestSchedule(SimpleTestCase):
|
||||
def test_get_cueout(self):
|
||||
show_instance = ShowInstance(
|
||||
created=datetime(year=2021, month=10, day=1, hour=12),
|
||||
starts=datetime(year=2021, month=10, day=2, hour=1),
|
||||
ends=datetime(year=2021, month=10, day=2, hour=2),
|
||||
)
|
||||
|
||||
length = timedelta(minutes=10)
|
||||
cue_in = timedelta(seconds=1)
|
||||
cue_out = length - timedelta(seconds=4)
|
||||
|
||||
# No overlapping schedule datetimes, normal usecase:
|
||||
s1_starts = datetime(year=2021, month=10, day=2, hour=1, minute=30)
|
||||
s1_ends = s1_starts + length
|
||||
|
||||
s1 = Schedule(
|
||||
starts=s1_starts,
|
||||
ends=s1_ends,
|
||||
cue_in=cue_in,
|
||||
cue_out=cue_out,
|
||||
instance=show_instance,
|
||||
)
|
||||
|
||||
self.assertEqual(s1.get_cueout(), cue_out)
|
||||
self.assertEqual(s1.get_ends(), s1_ends)
|
||||
|
||||
# Mixed overlapping schedule datetimes (only ends is overlapping):
|
||||
s2_starts = datetime(year=2021, month=10, day=2, hour=1, minute=55)
|
||||
s2_ends = s2_starts + length
|
||||
|
||||
s2 = Schedule(
|
||||
starts=s2_starts,
|
||||
ends=s2_ends,
|
||||
cue_in=cue_in,
|
||||
cue_out=cue_out,
|
||||
instance=show_instance,
|
||||
)
|
||||
|
||||
self.assertEqual(s2.get_cueout(), timedelta(minutes=5))
|
||||
self.assertEqual(s2.get_ends(), show_instance.ends)
|
||||
|
||||
# Fully overlapping schedule datetimes (starts and ends are overlapping):
|
||||
s3_starts = datetime(year=2021, month=10, day=2, hour=2, minute=1)
|
||||
s3_ends = s3_starts + length
|
||||
|
||||
s3 = Schedule(
|
||||
starts=s3_starts,
|
||||
ends=s3_ends,
|
||||
cue_in=cue_in,
|
||||
cue_out=cue_out,
|
||||
instance=show_instance,
|
||||
)
|
||||
|
||||
self.assertEqual(s3.get_cueout(), cue_out)
|
||||
self.assertEqual(s3.get_ends(), show_instance.ends)
|
Loading…
Add table
Add a link
Reference in a new issue