basic test stuff
This commit is contained in:
0
cookbook/tests/api/test_api_cook_log.py
Normal file
0
cookbook/tests/api/test_api_cook_log.py
Normal file
0
cookbook/tests/api/test_api_ingredient.py
Normal file
0
cookbook/tests/api/test_api_ingredient.py
Normal file
0
cookbook/tests/api/test_api_meal_plan.py
Normal file
0
cookbook/tests/api/test_api_meal_plan.py
Normal file
0
cookbook/tests/api/test_api_meal_type.py
Normal file
0
cookbook/tests/api/test_api_meal_type.py
Normal file
0
cookbook/tests/api/test_api_recipe_book.py
Normal file
0
cookbook/tests/api/test_api_recipe_book.py
Normal file
0
cookbook/tests/api/test_api_recipe_book_entry.py
Normal file
0
cookbook/tests/api/test_api_recipe_book_entry.py
Normal file
0
cookbook/tests/api/test_api_shopping_list_entry.py
Normal file
0
cookbook/tests/api/test_api_shopping_list_entry.py
Normal file
0
cookbook/tests/api/test_api_shopping_list_recipe.py
Normal file
0
cookbook/tests/api/test_api_shopping_list_recipe.py
Normal file
0
cookbook/tests/api/test_api_step.py
Normal file
0
cookbook/tests/api/test_api_step.py
Normal file
0
cookbook/tests/api/test_api_supermarket.py
Normal file
0
cookbook/tests/api/test_api_supermarket.py
Normal file
0
cookbook/tests/api/test_api_view_log.py
Normal file
0
cookbook/tests/api/test_api_view_log.py
Normal file
@ -2,45 +2,64 @@ from django.contrib import auth
|
|||||||
from django.contrib.auth.models import Group, User
|
from django.contrib.auth.models import Group, User
|
||||||
from django.test import Client, TestCase
|
from django.test import Client, TestCase
|
||||||
|
|
||||||
|
from cookbook.models import Space
|
||||||
|
|
||||||
|
|
||||||
class TestBase(TestCase):
|
class TestBase(TestCase):
|
||||||
|
superuser_client = None
|
||||||
|
anonymous_client = None
|
||||||
|
|
||||||
|
guest_client_1 = None
|
||||||
|
guest_client_2 = None
|
||||||
user_client_1 = None
|
user_client_1 = None
|
||||||
user_client_2 = None
|
user_client_2 = None
|
||||||
admin_client_1 = None
|
admin_client_1 = None
|
||||||
admin_client_2 = None
|
admin_client_2 = None
|
||||||
guest_client_1 = None
|
|
||||||
guest_client_2 = None
|
|
||||||
superuser_client = None
|
|
||||||
anonymous_client = None
|
|
||||||
|
|
||||||
def create_login_user(self, name, group):
|
s2_guest_client_1 = None
|
||||||
|
s2_user_client_1 = None
|
||||||
|
s2_admin_client_1 = None
|
||||||
|
s2_superuser_client = None
|
||||||
|
|
||||||
|
def create_login_user(self, name, group, space, superuser=False):
|
||||||
client = Client()
|
client = Client()
|
||||||
setattr(self, name, client)
|
setattr(self, name, client)
|
||||||
client.force_login(User.objects.get_or_create(username=name)[0])
|
client.force_login(User.objects.get_or_create(username=name)[0])
|
||||||
user = auth.get_user(getattr(self, name))
|
user = auth.get_user(getattr(self, name))
|
||||||
user.groups.add(Group.objects.get(name=group))
|
user.groups.add(Group.objects.get(name=group))
|
||||||
self.assertTrue(user.is_authenticated)
|
self.assertTrue(user.is_authenticated)
|
||||||
|
if superuser:
|
||||||
|
user.is_superuser = True
|
||||||
|
|
||||||
|
user.userpreference.space = space
|
||||||
|
user.save()
|
||||||
return user
|
return user
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.create_login_user('admin_client_1', 'admin')
|
# users for space 1
|
||||||
self.create_login_user('admin_client_2', 'admin')
|
space_1 = Space.objects.create(name='space 1')
|
||||||
|
|
||||||
self.create_login_user('user_client_1', 'user')
|
self.create_login_user('admin_client_1', 'admin', space_1)
|
||||||
self.create_login_user('user_client_2', 'user')
|
self.create_login_user('admin_client_2', 'admin', space_1)
|
||||||
|
|
||||||
self.create_login_user('guest_client_1', 'guest')
|
self.create_login_user('user_client_1', 'user', space_1)
|
||||||
self.create_login_user('guest_client_2', 'guest')
|
self.create_login_user('user_client_2', 'user', space_1)
|
||||||
|
|
||||||
|
self.create_login_user('guest_client_1', 'guest', space_1)
|
||||||
|
self.create_login_user('guest_client_2', 'guest', space_1)
|
||||||
|
|
||||||
self.anonymous_client = Client()
|
self.anonymous_client = Client()
|
||||||
|
|
||||||
user = self.create_login_user('superuser_client', 'admin')
|
self.create_login_user('superuser_client', 'admin', space_1, superuser=True)
|
||||||
user.is_superuser = True
|
|
||||||
user.save()
|
|
||||||
|
|
||||||
def batch_requests(
|
# users for space 2
|
||||||
self, clients, url, method='get', payload={}, content_type=''
|
space_2 = Space.objects.create(name='space 2')
|
||||||
):
|
self.create_login_user('s2_admin_client_1', 'admin', space_2)
|
||||||
|
self.create_login_user('s2_user_client_1', 'user', space_2)
|
||||||
|
self.create_login_user('s2_guest_client_1', 'guest', space_2)
|
||||||
|
self.create_login_user('s2_superuser_client', 'admin', space_2, superuser=True)
|
||||||
|
|
||||||
|
def batch_requests(self, clients, url, method='get', payload={}, content_type=''):
|
||||||
for c in clients:
|
for c in clients:
|
||||||
if method == 'get':
|
if method == 'get':
|
||||||
r = c[0].get(url)
|
r = c[0].get(url)
|
||||||
|
@ -312,6 +312,10 @@ class RecipeViewSet(viewsets.ModelViewSet, StandardFilterMixin):
|
|||||||
)
|
)
|
||||||
def image(self, request, pk):
|
def image(self, request, pk):
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
|
|
||||||
|
if obj.get_space() != request.space:
|
||||||
|
raise PermissionDenied(detail='You do not have the required permission to perform this action', code=403)
|
||||||
|
|
||||||
serializer = self.serializer_class(
|
serializer = self.serializer_class(
|
||||||
obj, data=request.data, partial=True
|
obj, data=request.data, partial=True
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user