708 |
708 |
assert common_timeperiod.end_time == datetime.time(18, 0)
|
709 |
709 |
|
710 |
710 |
|
|
711 |
def test_desk_exceptions_within_two_weeks():
|
|
712 |
agenda = Agenda.objects.create(label='Agenda', kind='meetings')
|
|
713 |
desk = Desk.objects.create(agenda=agenda, label='Desk')
|
|
714 |
|
|
715 |
# no exception
|
|
716 |
assert list(desk.get_exceptions_within_two_weeks()) == []
|
|
717 |
|
|
718 |
# exception ends in the past
|
|
719 |
exception = TimePeriodException.objects.create(
|
|
720 |
desk=desk,
|
|
721 |
start_datetime=now() - datetime.timedelta(days=2),
|
|
722 |
end_datetime=now() - datetime.timedelta(days=1),
|
|
723 |
)
|
|
724 |
assert list(desk.get_exceptions_within_two_weeks()) == []
|
|
725 |
|
|
726 |
# exception ends in the future - 14 days
|
|
727 |
exception.end_datetime = now() + datetime.timedelta(days=10)
|
|
728 |
# but starts in the past
|
|
729 |
exception.start_datetime = now() - datetime.timedelta(days=2)
|
|
730 |
exception.save()
|
|
731 |
assert list(desk.get_exceptions_within_two_weeks()) == [exception]
|
|
732 |
|
|
733 |
# exception ends in the future - 14 days
|
|
734 |
exception.end_datetime = now() + datetime.timedelta(days=10)
|
|
735 |
# but starts in the future
|
|
736 |
exception.start_datetime = now() + datetime.timedelta(days=2)
|
|
737 |
exception.save()
|
|
738 |
assert list(desk.get_exceptions_within_two_weeks()) == [exception]
|
|
739 |
|
|
740 |
# exception ends in the future + 14 days
|
|
741 |
exception.end_datetime = now() + datetime.timedelta(days=20)
|
|
742 |
# but starts in the past
|
|
743 |
exception.start_datetime = now() - datetime.timedelta(days=2)
|
|
744 |
exception.save()
|
|
745 |
assert list(desk.get_exceptions_within_two_weeks()) == [exception]
|
|
746 |
|
|
747 |
# create another one, very far way from now
|
|
748 |
exception2 = TimePeriodException.objects.create(
|
|
749 |
desk=desk,
|
|
750 |
start_datetime=now() + datetime.timedelta(days=200),
|
|
751 |
end_datetime=now() + datetime.timedelta(days=201),
|
|
752 |
)
|
|
753 |
|
|
754 |
# exception ends in the future + 14 days
|
|
755 |
exception.end_datetime = now() + datetime.timedelta(days=20)
|
|
756 |
# but starts in the future - 14 days
|
|
757 |
exception.start_datetime = now() + datetime.timedelta(days=2)
|
|
758 |
exception.save()
|
|
759 |
assert list(desk.get_exceptions_within_two_weeks()) == [exception]
|
|
760 |
|
|
761 |
# exception ends in the future + 14 days
|
|
762 |
exception.end_datetime = now() + datetime.timedelta(days=20)
|
|
763 |
# but starts in the future + 14 days
|
|
764 |
exception.start_datetime = now() + datetime.timedelta(days=21)
|
|
765 |
exception.save()
|
|
766 |
assert list(desk.get_exceptions_within_two_weeks()) == [exception]
|
|
767 |
|
|
768 |
# exception in the past
|
|
769 |
exception.end_datetime = now() - datetime.timedelta(days=20)
|
|
770 |
exception.start_datetime = now() - datetime.timedelta(days=21)
|
|
771 |
exception.save()
|
|
772 |
assert list(desk.get_exceptions_within_two_weeks()) == [exception2]
|
|
773 |
|
|
774 |
|
711 |
775 |
def test_desk_duplicate():
|
712 |
776 |
agenda = Agenda.objects.create(label='Agenda')
|
713 |
777 |
desk = Desk.objects.create(label='Desk', agenda=agenda)
|