Fix schedule test and permissions
This commit is contained in:
parent
842ad47ec0
commit
08d624db05
|
|
@ -10,6 +10,8 @@ from translation.models import Language
|
||||||
from account.models import Role, UserRole
|
from account.models import Role, UserRole
|
||||||
from location.models import Country, Address, City, Region
|
from location.models import Country, Address, City, Region
|
||||||
from pytz import timezone as py_tz
|
from pytz import timezone as py_tz
|
||||||
|
from main.models import SiteSettings
|
||||||
|
from timetable.models import Timetable
|
||||||
|
|
||||||
|
|
||||||
class BaseTestCase(APITestCase):
|
class BaseTestCase(APITestCase):
|
||||||
|
|
@ -336,24 +338,56 @@ class MenuTests(ChildTestCase):
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentShedulerTests(ChildTestCase):
|
class EstablishmentShedulerTests(ChildTestCase):
|
||||||
def test_shedule_CRUD(self):
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
|
||||||
|
self.lang, created = Language.objects.get_or_create(
|
||||||
|
title='Russia',
|
||||||
|
locale='ru-RU'
|
||||||
|
)
|
||||||
|
|
||||||
|
self.country_ru, created = Country.objects.get_or_create(
|
||||||
|
name={"en-GB": "Russian"}
|
||||||
|
)
|
||||||
|
|
||||||
|
self.site_ru, created = SiteSettings.objects.get_or_create(
|
||||||
|
subdomain='ru'
|
||||||
|
)
|
||||||
|
|
||||||
|
role, created = Role.objects.get_or_create(
|
||||||
|
role=Role.ESTABLISHMENT_MANAGER,
|
||||||
|
country_id=self.country_ru.id,
|
||||||
|
site_id=self.site_ru.id
|
||||||
|
)
|
||||||
|
|
||||||
|
user_role, created = UserRole.objects.get_or_create(
|
||||||
|
user=self.user,
|
||||||
|
role=role,
|
||||||
|
establishment_id=self.establishment.id
|
||||||
|
)
|
||||||
|
user_role.save()
|
||||||
|
|
||||||
|
def test_schedule_CRUD(self):
|
||||||
data = {
|
data = {
|
||||||
'weekday': 1
|
'weekday': 1
|
||||||
}
|
}
|
||||||
|
|
||||||
response = self.client.post(f'/api/back/establishments/{self.establishment.id}/schedule/', data=data)
|
response = self.client.post(f'/api/back/establishments/{self.establishment.id}/schedule/', data=data)
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
|
schedule = response.data
|
||||||
|
|
||||||
response = self.client.get(f'/api/back/establishments/{self.establishment.id}/schedule/1/')
|
response = self.client.get(f'/api/back/establishments/{self.establishment.id}/schedule/{schedule["id"]}/')
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
||||||
update_data = {
|
update_data = {
|
||||||
'weekday': 2
|
'weekday': 2
|
||||||
}
|
}
|
||||||
|
|
||||||
response = self.client.patch(f'/api/back/establishments/{self.establishment.id}/schedule/1/', data=update_data)
|
response = self.client.patch(f'/api/back/establishments/{self.establishment.id}/schedule/{schedule["id"]}/',
|
||||||
|
data=update_data)
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
||||||
response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/schedule/1/')
|
response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/schedule/{schedule["id"]}/')
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,9 @@ class IsEstablishmentManager(IsStandardUser):
|
||||||
def has_object_permission(self, request, view, obj):
|
def has_object_permission(self, request, view, obj):
|
||||||
|
|
||||||
rules = [
|
rules = [
|
||||||
super().has_object_permission(request, view, obj)
|
# special!
|
||||||
|
super().has_permission(request, view)
|
||||||
|
# super().has_object_permission(request, view, obj)
|
||||||
]
|
]
|
||||||
|
|
||||||
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
|
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER) \
|
||||||
|
|
@ -315,7 +317,9 @@ class IsEstablishmentManager(IsStandardUser):
|
||||||
UserRole.objects.filter(user=request.user, role=role,
|
UserRole.objects.filter(user=request.user, role=role,
|
||||||
establishment_id=obj.establishment_id
|
establishment_id=obj.establishment_id
|
||||||
).exists(),
|
).exists(),
|
||||||
super().has_object_permission(request, view, obj)
|
# special!
|
||||||
|
super().has_permission(request, view)
|
||||||
|
# super().has_object_permission(request, view, obj)
|
||||||
]
|
]
|
||||||
|
|
||||||
return any(rules)
|
return any(rules)
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ class TranslateFieldTests(BaseTestCase):
|
||||||
self.news_type = NewsType.objects.create(name="Test news type")
|
self.news_type = NewsType.objects.create(name="Test news type")
|
||||||
self.news_type.save()
|
self.news_type.save()
|
||||||
|
|
||||||
|
|
||||||
self.country_ru, created = Country.objects.get_or_create(
|
self.country_ru, created = Country.objects.get_or_create(
|
||||||
name={"en-GB": "Russian"}
|
name={"en-GB": "Russian"}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user