diff --git a/cookbook/tests/edits/__init__.py b/cookbook/tests/edits/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/cookbook/tests/test_views.py b/cookbook/tests/edits/test_edits_recipe.py similarity index 53% rename from cookbook/tests/test_views.py rename to cookbook/tests/edits/test_edits_recipe.py index 116f5df09..60338d4e2 100644 --- a/cookbook/tests/test_views.py +++ b/cookbook/tests/edits/test_edits_recipe.py @@ -1,51 +1,57 @@ from django.contrib import auth -from django.contrib.auth.models import User -from django.test import TestCase, Client from django.urls import reverse from cookbook.models import Recipe, RecipeIngredient +from cookbook.tests.views.test_views import TestViews -class TestViews(TestCase): +class TestEditsRecipe(TestViews): - def setUp(self): - self.client = Client() - self.anonymous_client = Client() - self.client.force_login(User.objects.get_or_create(username='test')[0]) - user = auth.get_user(self.client) - self.assertTrue(user.is_authenticated) + def test_switch_recipe(self): + internal_recipe = Recipe.objects.create( + name='Test', + internal=True, + created_by=auth.get_user(self.client) + ) - def test_index(self): - r = self.client.get(reverse('index')) - self.assertEqual(r.status_code, 200) + external_recipe = Recipe.objects.create( + name='Test', + internal=False, + created_by=auth.get_user(self.client) + ) - r = self.anonymous_client.get(reverse('index')) - self.assertEqual(r.status_code, 200) - - def test_books(self): - url = reverse('view_books') + url = reverse('edit_recipe', args=[internal_recipe.pk]) r = self.client.get(url) - self.assertEqual(r.status_code, 200) - - r = self.anonymous_client.get(url) self.assertEqual(r.status_code, 302) - def test_plan(self): - url = reverse('view_plan') - r = self.client.get(url) - self.assertEqual(r.status_code, 200) + r = self.client.get(r.url) + self.assertTemplateUsed(r, 'forms/edit_internal_recipe.html') - r = self.anonymous_client.get(url) + url = reverse('edit_recipe', args=[external_recipe.pk]) + r = self.client.get(url) self.assertEqual(r.status_code, 302) - def test_shopping(self): - url = reverse('view_shopping') - r = self.client.get(url) - self.assertEqual(r.status_code, 200) + r = self.client.get(r.url) + self.assertTemplateUsed(r, 'generic/edit_template.html') - r = self.anonymous_client.get(url) + def test_convert_recipe(self): + url = reverse('edit_convert_recipe', args=[42]) + r = self.client.get(url) + self.assertEqual(r.status_code, 404) + + external_recipe = Recipe.objects.create( + name='Test', + internal=False, + created_by=auth.get_user(self.client) + ) + + url = reverse('edit_convert_recipe', args=[external_recipe.pk]) + r = self.client.get(url) self.assertEqual(r.status_code, 302) + recipe = Recipe.objects.get(pk=external_recipe.pk) + self.assertTrue(recipe.internal) + def test_internal_recipe_update(self): recipe = Recipe.objects.create( name='Test', diff --git a/cookbook/tests/test_setup.py b/cookbook/tests/test_setup.py new file mode 100644 index 000000000..5265d1317 --- /dev/null +++ b/cookbook/tests/test_setup.py @@ -0,0 +1,13 @@ +from django.contrib import auth +from django.contrib.auth.models import User +from django.test import TestCase, Client + + +class TestBase(TestCase): + + def setUp(self): + self.client = Client() + self.anonymous_client = Client() + self.client.force_login(User.objects.get_or_create(username='test')[0]) + user = auth.get_user(self.client) + self.assertTrue(user.is_authenticated) diff --git a/cookbook/tests/views/__init__.py b/cookbook/tests/views/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/cookbook/tests/views/test_views.py b/cookbook/tests/views/test_views.py new file mode 100644 index 000000000..91da6c987 --- /dev/null +++ b/cookbook/tests/views/test_views.py @@ -0,0 +1,5 @@ +from cookbook.tests.test_setup import TestBase + + +class TestViews(TestBase): + pass diff --git a/cookbook/tests/views/test_views_general.py b/cookbook/tests/views/test_views_general.py new file mode 100644 index 000000000..efdc33372 --- /dev/null +++ b/cookbook/tests/views/test_views_general.py @@ -0,0 +1,37 @@ +from django.urls import reverse + +from cookbook.tests.views.test_views import TestViews + + +class TestViewsGeneral(TestViews): + + def test_index(self): + r = self.client.get(reverse('index')) + self.assertEqual(r.status_code, 200) + + r = self.anonymous_client.get(reverse('index')) + self.assertEqual(r.status_code, 200) + + def test_books(self): + url = reverse('view_books') + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + + r = self.anonymous_client.get(url) + self.assertEqual(r.status_code, 302) + + def test_plan(self): + url = reverse('view_plan') + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + + r = self.anonymous_client.get(url) + self.assertEqual(r.status_code, 302) + + def test_shopping(self): + url = reverse('view_shopping') + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + + r = self.anonymous_client.get(url) + self.assertEqual(r.status_code, 302)