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
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
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 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
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"
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?
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"
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"
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?
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"
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()