Exemplo n.º 1
0
 def test_get_user(self):
     user = User.create(name='Teste 1')
     forecast_dict = {
         'address': 'Rua Marshmallow',
         'notification': '07:00:00'
     }
     forecast_dict["period"] = {
         'period_from': '08:00:00',
         'period_to': '19:00:00'
     }
     forecast_dict["days"] = {
         'sunday': True,
         'monday': True,
         'tuesday': True,
         'wednesday': True,
         'thursday': True,
         'friday': False,
         'saturday': False
     }
     forecast = Forecast.create(user=user, **forecast_dict)
     Period.create(period=forecast, **forecast_dict["period"])
     Days.create(days=forecast, **forecast_dict["days"])
     data = {'id': user.id, 'name': 'Teste 1', 'forecast': [forecast_dict]}
     url = "/users/%s" % user.id
     assert data == self.app.get(url).json
Exemplo n.º 2
0
    def test_forecast_get(self):
        user = User.create(name='Teste update')
        forecast_dict = {
            'user_id': user.id,
            'address': 'Rua Marshmallow',
            'notification': '07:00:00'
        }
        forecast_dict["period"] = {
            'period_from': '08:00:00',
            'period_to': '19:00:00'
        }
        forecast_dict["days"] = {
            'sunday': True,
            'monday': True,
            'tuesday': True,
            'wednesday': True,
            'thursday': True,
            'friday': False,
            'saturday': False
        }
        forecast = Forecast.create(user=user, **forecast_dict)
        Period.create(period=forecast, **forecast_dict["period"])
        Days.create(days=forecast, **forecast_dict["days"])
        forecast_dict["id"] = forecast.id
        url = "users/%s/forecast/%s" % (user.id, forecast.id)
        rv = self.app.get(url, content_type='application/json').json
        assert forecast_dict == rv

        url = "users/1/forecast/540"
        rv = self.app.get(url, content_type='application/json').json
        assert {"message": "Forecast could not be found"} == rv
Exemplo n.º 3
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"
Exemplo n.º 4
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"
 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
Exemplo n.º 6
0
def test_period_overlaps(space_resource, offsets):
    big_period = Period.objects.create(
        resource=space_resource, start=date(2015, 1, 1), end=date(2015, 12, 1), name="test"
    )
    start_days, end_days = offsets
    overlap_period = Period(
        resource=space_resource,
        start=big_period.start + timedelta(days=start_days),
        end=big_period.end + timedelta(days=end_days),
        name="overlap"
    )
    with pytest.raises(ValidationError) as ei:
        overlap_period.clean()
    assert ei.value.code == "overlap"
Exemplo n.º 7
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?
Exemplo n.º 8
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"
Exemplo n.º 9
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.clean()
    assert ei.value.code == "no_belonging"

    period.resource = space_resource
    period.unit = test_unit
    with pytest.raises(ValidationError) as ei:
        period.clean()
    assert ei.value.code == "invalid_belonging"
Exemplo n.º 10
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()
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?
Exemplo n.º 12
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()
Exemplo n.º 13
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"
Exemplo n.º 14
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"
Exemplo n.º 15
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"
Exemplo n.º 16
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"
Exemplo n.º 17
0
def test_exceptional_period_with_regular_period(space_resource):
    period = Period(resource=space_resource, start=date(2015, 8, 1), end=date(2015, 11, 1), name="test")
    period.clean()
    period.save()
    exception = Period(
            resource=space_resource,
            start=date(2015, 10, 24),
            end=date(2015, 10, 24),
            name="united_nations_day",
            exception=True
        )
    exception.clean()
    exception.save()
    period.name += "too"
    period.clean()
    period.save()