added more tests and test structure

This commit is contained in:
vabene1111
2020-02-28 23:17:04 +01:00
parent df62717806
commit 8c7a171d56
6 changed files with 91 additions and 30 deletions

View File

View File

@ -1,51 +1,57 @@
from django.contrib import auth from django.contrib import auth
from django.contrib.auth.models import User
from django.test import TestCase, Client
from django.urls import reverse from django.urls import reverse
from cookbook.models import Recipe, RecipeIngredient from cookbook.models import Recipe, RecipeIngredient
from cookbook.tests.views.test_views import TestViews
class TestViews(TestCase): class TestEditsRecipe(TestViews):
def setUp(self): def test_switch_recipe(self):
self.client = Client() internal_recipe = Recipe.objects.create(
self.anonymous_client = Client() name='Test',
self.client.force_login(User.objects.get_or_create(username='test')[0]) internal=True,
user = auth.get_user(self.client) created_by=auth.get_user(self.client)
self.assertTrue(user.is_authenticated) )
def test_index(self): external_recipe = Recipe.objects.create(
r = self.client.get(reverse('index')) name='Test',
self.assertEqual(r.status_code, 200) internal=False,
created_by=auth.get_user(self.client)
)
r = self.anonymous_client.get(reverse('index')) url = reverse('edit_recipe', args=[internal_recipe.pk])
self.assertEqual(r.status_code, 200)
def test_books(self):
url = reverse('view_books')
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200)
r = self.anonymous_client.get(url)
self.assertEqual(r.status_code, 302) self.assertEqual(r.status_code, 302)
def test_plan(self): r = self.client.get(r.url)
url = reverse('view_plan') self.assertTemplateUsed(r, 'forms/edit_internal_recipe.html')
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
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) self.assertEqual(r.status_code, 302)
def test_shopping(self): r = self.client.get(r.url)
url = reverse('view_shopping') self.assertTemplateUsed(r, 'generic/edit_template.html')
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
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) self.assertEqual(r.status_code, 302)
recipe = Recipe.objects.get(pk=external_recipe.pk)
self.assertTrue(recipe.internal)
def test_internal_recipe_update(self): def test_internal_recipe_update(self):
recipe = Recipe.objects.create( recipe = Recipe.objects.create(
name='Test', name='Test',

View File

@ -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)

View File

View File

@ -0,0 +1,5 @@
from cookbook.tests.test_setup import TestBase
class TestViews(TestBase):
pass

View File

@ -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)