all tests migrated and improved

This commit is contained in:
vabene1111
2021-03-17 22:10:58 +01:00
parent ad0d802e41
commit 76eeed1a77
53 changed files with 266 additions and 443 deletions

View File

@@ -0,0 +1,7 @@
from django.test import utils
from django_scopes import scopes_disabled
# disables scoping error in all queries used inside the test FUNCTIONS
# FIXTURES need to have their own scopes_disabled!!
# This is done by hook pytest_fixture_setup in conftest.py for all non yield fixtures
utils.setup_databases = scopes_disabled()(utils.setup_databases)

View File

@@ -1,57 +0,0 @@
from cookbook.models import Comment, Recipe
from cookbook.tests.views.test_views import TestViews
from django.contrib import auth
from django.urls import reverse
class TestEditsComment(TestViews):
def setUp(self):
super(TestEditsComment, self).setUp()
self.recipe = Recipe.objects.create(
internal=True,
working_time=1,
waiting_time=1,
created_by=auth.get_user(self.user_client_1)
)
self.comment = Comment.objects.create(
text='TestStorage',
created_by=auth.get_user(self.guest_client_1),
recipe=self.recipe
)
self.url = reverse('edit_comment', args=[self.comment.pk])
def test_new_comment(self):
r = self.user_client_1.post(
reverse(
'view_recipe',
args=[self.recipe.pk]
),
{
'comment-text': 'Test Comment Text',
'comment-recipe': self.recipe.pk
}
)
self.assertEqual(r.status_code, 200)
def test_edit_comment_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, 200)
r = self.guest_client_2.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, 302)
r = self.superuser_client.get(self.url)
self.assertEqual(r.status_code, 200)

View File

@@ -0,0 +1,82 @@
from cookbook.models import Recipe, Storage
from django.contrib import auth
from django.urls import reverse
from pytest_django.asserts import assertTemplateUsed
def test_switch_recipe(u1_s1, recipe_1_s1, space_1):
external_recipe = Recipe.objects.create(
name='Test',
internal=False,
created_by=auth.get_user(u1_s1),
space=space_1,
)
url = reverse('edit_recipe', args=[recipe_1_s1.pk])
r = u1_s1.get(url)
assert r.status_code == 302
r = u1_s1.get(r.url)
assertTemplateUsed(r, 'forms/edit_internal_recipe.html')
url = reverse('edit_recipe', args=[external_recipe.pk])
r = u1_s1.get(url)
assert r.status_code == 302
r = u1_s1.get(r.url)
assertTemplateUsed(r, 'generic/edit_template.html')
def test_convert_recipe(u1_s1, space_1):
external_recipe = Recipe.objects.create(
name='Test',
internal=False,
created_by=auth.get_user(u1_s1),
space=space_1,
)
r = u1_s1.get(reverse('edit_convert_recipe', args=[external_recipe.pk]))
assert r.status_code == 302
external_recipe.refresh_from_db()
assert external_recipe.internal
def test_external_recipe_update(u1_s1, u1_s2, space_1):
storage = Storage.objects.create(
name='TestStorage',
method=Storage.DROPBOX,
created_by=auth.get_user(u1_s1),
token='test',
username='test',
password='test',
space=space_1,
)
recipe = Recipe.objects.create(
name='Test',
created_by=auth.get_user(u1_s1),
storage=storage,
space=space_1,
)
url = reverse('edit_external_recipe', args=[recipe.pk])
r = u1_s1.get(url)
assert r.status_code == 200
u1_s2.post(
url,
{'name': 'Test', 'working_time': 15, 'waiting_time': 15, 'servings': 1, }
)
recipe.refresh_from_db()
assert recipe.working_time == 0
assert recipe.waiting_time == 0
u1_s1.post(
url,
{'name': 'Test', 'working_time': 15, 'waiting_time': 15, 'servings': 1, }
)
recipe.refresh_from_db()
assert recipe.working_time == 15
assert recipe.waiting_time == 15

View File

@@ -1,68 +1,58 @@
from cookbook.models import Storage
from cookbook.tests.views.test_views import TestViews
from django.contrib import auth
from django.urls import reverse
import pytest
class TestEditsRecipe(TestViews):
@pytest.fixture
def storage_obj(a1_s1, space_1):
return Storage.objects.create(
name='TestStorage',
method=Storage.DROPBOX,
created_by=auth.get_user(a1_s1),
token='test',
username='test',
password='test',
space=space_1,
)
def setUp(self):
super(TestEditsRecipe, self).setUp()
self.storage = Storage.objects.create(
name='TestStorage',
method=Storage.DROPBOX,
created_by=auth.get_user(self.admin_client_1),
token='test',
username='test',
password='test',
)
self.url = reverse('edit_storage', args=[self.storage.pk])
def test_edit_storage(storage_obj, a1_s1, a1_s2):
r = a1_s1.post(
reverse('edit_storage', args={storage_obj.pk}),
{
'name': 'NewStorage',
'password': '1234_pw',
'token': '1234_token',
'method': Storage.DROPBOX
}
)
storage_obj.refresh_from_db()
assert r.status_code == 200
assert storage_obj.password == '1234_pw'
assert storage_obj.token == '1234_token'
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 = a1_s2.post(
reverse('edit_storage', args={storage_obj.pk}),
{
'name': 'NewStorage',
'password': '1234_pw',
'token': '1234_token',
'method': Storage.DROPBOX
}
)
assert r.status_code == 404
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.' # noqa: E501
]
)
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)
@pytest.mark.parametrize("arg", [
['a_u', 302],
['g1_s1', 302],
['u1_s1', 302],
['a1_s1', 200],
['g1_s2', 302],
['u1_s2', 302],
['a1_s2', 404],
])
def test_view_permission(arg, request, storage_obj):
c = request.getfixturevalue(arg[0])
assert c.get(reverse('edit_storage', args={storage_obj.pk})).status_code == arg[1]