updated tests

This commit is contained in:
vabene1111
2020-04-27 17:13:43 +02:00
parent 1617fa7a3f
commit c7b1b08516
4 changed files with 81 additions and 63 deletions

View File

@ -11,66 +11,66 @@ class TestEditsRecipe(TestViews):
internal_recipe = Recipe.objects.create(
name='Test',
internal=True,
created_by=auth.get_user(self.client)
created_by=auth.get_user(self.user_client_1)
)
external_recipe = Recipe.objects.create(
name='Test',
internal=False,
created_by=auth.get_user(self.client)
created_by=auth.get_user(self.user_client_1)
)
url = reverse('edit_recipe', args=[internal_recipe.pk])
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 302)
r = self.client.get(r.url)
r = self.user_client_1.get(r.url)
self.assertTemplateUsed(r, 'forms/edit_internal_recipe.html')
url = reverse('edit_recipe', args=[external_recipe.pk])
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 302)
r = self.client.get(r.url)
r = self.user_client_1.get(r.url)
self.assertTemplateUsed(r, 'generic/edit_template.html')
def test_convert_recipe(self):
url = reverse('edit_convert_recipe', args=[42])
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 404)
external_recipe = Recipe.objects.create(
name='Test',
internal=False,
created_by=auth.get_user(self.client)
created_by=auth.get_user(self.user_client_1)
)
url = reverse('edit_convert_recipe', args=[external_recipe.pk])
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 302)
recipe = Recipe.objects.get(pk=external_recipe.pk)
self.assertTrue(recipe.internal)
url = reverse('edit_convert_recipe', args=[recipe.pk])
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 302)
def test_internal_recipe_update(self):
recipe = Recipe.objects.create(
name='Test',
created_by=auth.get_user(self.client)
created_by=auth.get_user(self.user_client_1)
)
url = reverse('edit_internal_recipe', args=[recipe.pk])
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 200)
r = self.anonymous_client.get(url)
self.assertEqual(r.status_code, 302)
r = self.client.post(url, {'name': 'Changed', 'working_time': 15, 'waiting_time': 15, 'ingredients': '[]'})
r = self.user_client_1.post(url, {'name': 'Changed', 'working_time': 15, 'waiting_time': 15, 'ingredients': '[]'})
self.assertEqual(r.status_code, 200)
recipe = Recipe.objects.get(pk=recipe.pk)
@ -79,30 +79,30 @@ class TestEditsRecipe(TestViews):
Ingredient.objects.create(name='Egg')
Unit.objects.create(name='g')
r = self.client.post(url,
r = self.user_client_1.post(url,
{'name': 'Changed', 'working_time': 15, 'waiting_time': 15,
'ingredients': '[{"ingredient__name":"Tomato","unit__name":"g","amount":100,"delete":false},{"ingredient__name":"Egg","unit__name":"Piece","amount":"2,5","delete":false}]'})
self.assertEqual(r.status_code, 200)
self.assertEqual(2, RecipeIngredient.objects.filter(recipe=recipe).count())
r = self.client.post(url,
r = self.user_client_1.post(url,
{'name': "Test", 'working_time': "Test", 'waiting_time': 15,
'ingredients': '[{"ingredient__name":"Tomato","unit__name":"g","amount":100,"delete":false},{"ingredient__name":"Egg","unit__name":"Piece","amount":"2,5","delete":false}]'})
self.assertEqual(r.status_code, 403)
with open('cookbook/tests/resources/image.jpg', 'rb') as file:
r = self.client.post(url, {'name': "Changed", 'working_time': 15, 'waiting_time': 15, 'image': file})
r = self.user_client_1.post(url, {'name': "Changed", 'working_time': 15, 'waiting_time': 15, 'image': file})
self.assertEqual(r.status_code, 200)
with open('cookbook/tests/resources/image.png', 'rb') as file:
r = self.client.post(url, {'name': "Changed", 'working_time': 15, 'waiting_time': 15, 'image': file})
r = self.user_client_1.post(url, {'name': "Changed", 'working_time': 15, 'waiting_time': 15, 'image': file})
self.assertEqual(r.status_code, 200)
def test_external_recipe_update(self):
storage = Storage.objects.create(
name='TestStorage',
method=Storage.DROPBOX,
created_by=auth.get_user(self.client),
created_by=auth.get_user(self.user_client_1),
token='test',
username='test',
password='test',
@ -110,19 +110,19 @@ class TestEditsRecipe(TestViews):
recipe = Recipe.objects.create(
name='Test',
created_by=auth.get_user(self.client),
created_by=auth.get_user(self.user_client_1),
storage=storage,
)
url = reverse('edit_external_recipe', args=[recipe.pk])
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 200)
r = self.anonymous_client.get(url)
self.assertEqual(r.status_code, 302)
r = self.client.post(url, {'name': 'Test', 'working_time': 15, 'waiting_time': 15, })
r = self.user_client_1.post(url, {'name': 'Test', 'working_time': 15, 'waiting_time': 15, })
recipe.refresh_from_db()
self.assertEqual(recipe.working_time, 15)
self.assertEqual(recipe.waiting_time, 15)

View File

@ -7,33 +7,40 @@ from cookbook.tests.views.test_views import TestViews
class TestEditsRecipe(TestViews):
def test_edit_storage(self):
storage = Storage.objects.create(
def setUp(self):
super(TestEditsRecipe, self).setUp()
self.storage = Storage.objects.create(
name='TestStorage',
method=Storage.DROPBOX,
created_by=auth.get_user(self.client),
created_by=auth.get_user(self.admin_client_1),
token='test',
username='test',
password='test',
)
self.url = reverse('edit_storage', args=[self.storage.pk])
url = reverse('edit_storage', args=[storage.pk])
r = self.anonymous_client.get(url)
self.assertEqual(r.status_code, 302)
def test_edit_storage(self):
r = self.admin_client_1.post(self.url, {'name': 'NewStorage', 'password': '1234_pw', 'token': '1234_token', 'method': Storage.DROPBOX})
self.storage.refresh_from_db()
self.assertEqual(self.storage.password, '1234_pw')
self.assertEqual(self.storage.token, '1234_token')
r = self.another_client.get(url)
self.assertEqual(r.status_code, 302)
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
r = self.superuser_client.get(url)
self.assertEqual(r.status_code, 200)
r = self.client.post(url, {'name': 'NewStorage', 'password': '1234_pw', 'token': '1234_token', 'method': Storage.DROPBOX})
storage.refresh_from_db()
self.assertEqual(storage.password, '1234_pw')
self.assertEqual(storage.token, '1234_token')
r = self.client.post(url, {'name': 'NewStorage', 'password': '1234_pw', 'token': '1234_token', 'method': 'not_a_valid_method'})
r = self.admin_client_1.post(self.url, {'name': 'NewStorage', 'password': '1234_pw', 'token': '1234_token', 'method': 'not_a_valid_method'})
self.assertFormError(r, 'form', 'method', ['Select a valid choice. not_a_valid_method is not one of the available choices.'])
def test_edit_storage_permissions(self):
r = self.anonymous_client.get(self.url)
self.assertEqual(r.status_code, 302)
r = self.guest_client_1.get(self.url)
self.assertEqual(r.status_code, 302)
r = self.user_client_1.get(self.url)
self.assertEqual(r.status_code, 302)
r = self.admin_client_1.get(self.url)
self.assertEqual(r.status_code, 200)
r = self.superuser_client.get(self.url)
self.assertEqual(r.status_code, 200)

View File

@ -4,24 +4,35 @@ from django.test import TestCase, Client
class TestBase(TestCase):
user_client_1 = None
user_client_2 = None
admin_client_1 = None
admin_client_2 = None
guest_client_1 = None
guest_client_2 = None
superuser_client = None
def create_login_user(self, name, group):
client = Client()
setattr(self, name, client)
client.force_login(User.objects.get_or_create(username=name)[0])
user = auth.get_user(getattr(self, name))
user.groups.add(Group.objects.get(name=group))
self.assertTrue(user.is_authenticated)
return user
def setUp(self):
self.create_login_user('admin_client_1', 'admin')
self.create_login_user('admin_client_2', 'admin')
self.create_login_user('user_client_1', 'user')
self.create_login_user('user_client_2', 'user')
self.create_login_user('guest_client_1', 'guest')
self.create_login_user('guest_client_2', 'guest')
self.anonymous_client = Client()
self.client = Client()
self.client.force_login(User.objects.get_or_create(username='client')[0])
user = auth.get_user(self.client)
user.groups.add(Group.objects.get(name='admin'))
self.assertTrue(user.is_authenticated)
self.another_client = Client()
self.another_client.force_login(User.objects.get_or_create(username='another_client')[0])
user = auth.get_user(self.another_client)
user.groups.add(Group.objects.get(name='admin'))
self.assertTrue(user.is_authenticated)
self.superuser_client = Client()
self.superuser_client.force_login(User.objects.get_or_create(username='superuser_client', is_superuser=True)[0])
user = auth.get_user(self.superuser_client)
user.groups.add(Group.objects.get(name='admin'))
self.assertTrue(user.is_authenticated)
user = self.create_login_user('superuser_client', 'admin')
user.is_superuser = True
user.save()

View File

@ -6,7 +6,7 @@ from cookbook.tests.views.test_views import TestViews
class TestViewsGeneral(TestViews):
def test_index(self):
r = self.client.get(reverse('index'))
r = self.user_client_1.get(reverse('index'))
self.assertEqual(r.status_code, 302)
r = self.anonymous_client.get(reverse('index'))
@ -14,7 +14,7 @@ class TestViewsGeneral(TestViews):
def test_books(self):
url = reverse('view_books')
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 200)
r = self.anonymous_client.get(url)
@ -22,7 +22,7 @@ class TestViewsGeneral(TestViews):
def test_plan(self):
url = reverse('view_plan')
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 200)
r = self.anonymous_client.get(url)
@ -30,7 +30,7 @@ class TestViewsGeneral(TestViews):
def test_shopping(self):
url = reverse('view_shopping')
r = self.client.get(url)
r = self.user_client_1.get(url)
self.assertEqual(r.status_code, 200)
r = self.anonymous_client.get(url)