示例#1
0
def test_period_model_form(space_resource, commit):
    period = Period(resource=space_resource,
                    start=date(2015, 8, 1),
                    end=date(2015, 11, 1),
                    name="plop")
    period.full_clean()
    period.save()
    for wd in range(7):
        period.days.create(weekday=wd,
                           opens=time(9, wd * 2),
                           closes=time(12 + wd))

    pmf = PeriodModelForm(instance=period)
    data = get_form_data(pmf, prepared=True)
    # Make every day open at 06, set closed on wednesdays
    for key in list(data.keys()):
        if key.startswith(prefix_weekday(2, "")):
            data[key] = ""
        elif key.endswith("opens"):
            data[key] = "06:00"
    pmf = PeriodModelForm(instance=period, data=data)
    assert pmf.is_valid()
    period = pmf.save(commit=commit)
    if not commit:
        period.save()
        pmf.save_m2m()

    assert all(day.opens.hour == 6 for day in period.days.all())
    assert not period.days.filter(
        weekday=2).exists()  # Weekdays _got_ closed, yeah?
示例#2
0
def test_period_can_be_resaved(space_resource):
    period = Period(resource=space_resource,
                    start=date(2015, 8, 1),
                    end=date(2015, 11, 1),
                    name="test")
    period.save()
    period.name += "too"
    period.save()
示例#3
0
def test_invalid_save_period():
    period = Period(resource=None,
                    start=date(2015, 8, 1),
                    end=date(2015, 11, 1),
                    name="test")
    with pytest.raises(ValidationError) as ei:
        period.save()
    assert ei.value.code == "no_belonging"
示例#4
0
def test_invalid_date_range(space_resource):
    period = Period(resource=space_resource,
                    start=date(2016, 8, 1),
                    end=date(2015, 11, 1),
                    name="test")
    with pytest.raises(ValidationError) as ei:
        period.clean()
    assert ei.value.code == "invalid_date_range"
 def create_item(self, item):
     period = Period()
     period.resource_id = self.__resource_id
     period.start = naive_date(item.begin)
     period.end = naive_date(item.end)
     period._from_o365_sync = True
     period.save()
     Day.objects.create(closed=False, weekday=item.begin.weekday(), opens=naive_time(item.begin), closes=naive_time(item.end), period=period)
     period.save()
     Resource.objects.get(pk=self.__resource_id).update_opening_hours()
     return period.id, period_change_key
示例#6
0
def test_invalid_belongings(space_resource, test_unit):
    period = Period(start=date(2015, 8, 1), end=date(2015, 11, 1), name="test")
    with pytest.raises(ValidationError) as ei:
        period._validate_belonging()
    assert ei.value.code == "no_belonging"

    period.resource = space_resource
    period.unit = test_unit
    with pytest.raises(ValidationError) as ei:
        period._validate_belonging()
    assert ei.value.code == "invalid_belonging"
示例#7
0
def test_none_start_end_time(space_resource):
    period = Period(resource=space_resource, start=None, end=None, name="test")
    with pytest.raises(ValidationError) as ei:
        period.clean()
    assert ei.value.code == "empty_start_end"