45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
import uuid
|
|
|
|
from django.contrib import auth
|
|
from django.urls import reverse
|
|
|
|
from cookbook.helper.permission_helper import share_link_valid
|
|
from cookbook.models import Recipe, ShareLink
|
|
from cookbook.tests.views.test_views import TestViews
|
|
|
|
|
|
class TestViewsGeneral(TestViews):
|
|
|
|
def test_share(self):
|
|
internal_recipe = Recipe.objects.create(
|
|
name='Test',
|
|
internal=True,
|
|
created_by=auth.get_user(self.user_client_1)
|
|
)
|
|
|
|
url = reverse('view_recipe', kwargs={'pk': internal_recipe.pk})
|
|
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)
|
|
|
|
url = reverse('new_share_link', kwargs={'pk': internal_recipe.pk})
|
|
r = self.user_client_1.get(url)
|
|
self.assertEqual(r.status_code, 302)
|
|
share = ShareLink.objects.filter(recipe=internal_recipe).first()
|
|
self.assertIsNotNone(share)
|
|
self.assertTrue(share_link_valid(internal_recipe, share.uuid))
|
|
|
|
url = reverse('view_recipe', kwargs={'pk': internal_recipe.pk, 'share': share.uuid})
|
|
r = self.anonymous_client.get(url)
|
|
self.assertEqual(r.status_code, 200)
|
|
|
|
url = reverse('view_recipe', kwargs={'pk': (internal_recipe.pk + 1), 'share': share.uuid})
|
|
r = self.anonymous_client.get(url)
|
|
self.assertEqual(r.status_code, 404)
|
|
|
|
url = reverse('view_recipe', kwargs={'pk': internal_recipe.pk, 'share': uuid.uuid4()})
|
|
r = self.anonymous_client.get(url)
|
|
self.assertEqual(r.status_code, 302)
|