summaryrefslogtreecommitdiff
path: root/tests/generic_views
diff options
context:
space:
mode:
authorJosh Smeaton <josh.smeaton@gmail.com>2015-02-23 11:53:57 +1100
committerJosh Smeaton <josh.smeaton@gmail.com>2015-03-05 10:10:32 +1100
commit39a7eed1bbf12020a077e4bec3d82e08f171a021 (patch)
tree225be14a94d57517d9de646569498eb45d0a4352 /tests/generic_views
parentd6969abf239d52f6dfed7384c6ceb7df7e618342 (diff)
Converted test fixtures to setUpTestData methods
Diffstat (limited to 'tests/generic_views')
-rw-r--r--tests/generic_views/fixtures/generic-views-test-data.json54
-rw-r--r--tests/generic_views/test_dates.py56
-rw-r--r--tests/generic_views/test_detail.py89
-rw-r--r--tests/generic_views/test_list.py18
-rw-r--r--tests/generic_views/views.py2
5 files changed, 102 insertions, 117 deletions
diff --git a/tests/generic_views/fixtures/generic-views-test-data.json b/tests/generic_views/fixtures/generic-views-test-data.json
deleted file mode 100644
index dfffbbf8d8..0000000000
--- a/tests/generic_views/fixtures/generic-views-test-data.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
- {
- "model": "generic_views.artist",
- "pk": 1,
- "fields": {
- "name": "Rene Magritte"
- }
- },
- {
- "model": "generic_views.author",
- "pk": 1,
- "fields": {
- "name": "Roberto Bolaño",
- "slug": "roberto-bolano"
- }
- },
- {
- "model": "generic_views.author",
- "pk": 2,
- "fields": {
- "name": "Scott Rosenberg",
- "slug": "scott-rosenberg"
- }
- },
- {
- "model": "generic_views.book",
- "pk": 1,
- "fields": {
- "name": "2066",
- "slug": "2066",
- "pages": "800",
- "authors": [1],
- "pubdate": "2008-10-01"
- }
- },
- {
- "model": "generic_views.book",
- "pk": 2,
- "fields": {
- "name": "Dreaming in Code",
- "slug": "dreaming-in-code",
- "pages": "300",
- "pubdate": "2006-05-01"
- }
- },
- {
- "model": "generic_views.page",
- "pk": 1,
- "fields": {
- "template": "generic_views/page_template.html",
- "content": "I was once bitten by a moose."
- }
- }
-] \ No newline at end of file
diff --git a/tests/generic_views/test_dates.py b/tests/generic_views/test_dates.py
index d354d42149..52e35ecb77 100644
--- a/tests/generic_views/test_dates.py
+++ b/tests/generic_views/test_dates.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
@@ -7,7 +8,7 @@ from django.test import TestCase, override_settings, skipUnlessDBFeature
from django.test.utils import requires_tz_support
from django.utils import timezone
-from .models import Book, BookSigning
+from .models import Artist, Author, Book, BookSigning, Page
def _make_books(n, base_date):
@@ -19,9 +20,25 @@ def _make_books(n, base_date):
pubdate=base_date - datetime.timedelta(days=i))
+class TestDataMixin(object):
+
+ @classmethod
+ def setUpTestData(cls):
+ cls.artist1 = Artist.objects.create(name='Rene Magritte')
+ cls.author1 = Author.objects.create(name='Roberto Bolaño', slug='roberto-bolano')
+ cls.author2 = Author.objects.create(name='Scott Rosenberg', slug='scott-rosenberg')
+ cls.book1 = Book.objects.create(name='2066', slug='2066', pages=800, pubdate=datetime.date(2008, 10, 1))
+ cls.book1.authors.add(cls.author1)
+ cls.book2 = Book.objects.create(
+ name='Dreaming in Code', slug='dreaming-in-code', pages=300, pubdate=datetime.date(2006, 5, 1)
+ )
+ cls.page1 = Page.objects.create(
+ content='I was once bitten by a moose.', template='generic_views/page_template.html'
+ )
+
+
@override_settings(ROOT_URLCONF='generic_views.urls')
-class ArchiveIndexViewTests(TestCase):
- fixtures = ['generic-views-test-data.json']
+class ArchiveIndexViewTests(TestDataMixin, TestCase):
def test_archive_view(self):
res = self.client.get('/dates/books/')
@@ -138,8 +155,7 @@ class ArchiveIndexViewTests(TestCase):
@override_settings(ROOT_URLCONF='generic_views.urls')
-class YearArchiveViewTests(TestCase):
- fixtures = ['generic-views-test-data.json']
+class YearArchiveViewTests(TestDataMixin, TestCase):
def test_year_view(self):
res = self.client.get('/dates/books/2008/')
@@ -243,8 +259,7 @@ class YearArchiveViewTests(TestCase):
@override_settings(ROOT_URLCONF='generic_views.urls')
-class MonthArchiveViewTests(TestCase):
- fixtures = ['generic-views-test-data.json']
+class MonthArchiveViewTests(TestDataMixin, TestCase):
def test_month_view(self):
res = self.client.get('/dates/books/2008/oct/')
@@ -370,8 +385,7 @@ class MonthArchiveViewTests(TestCase):
@override_settings(ROOT_URLCONF='generic_views.urls')
-class WeekArchiveViewTests(TestCase):
- fixtures = ['generic-views-test-data.json']
+class WeekArchiveViewTests(TestDataMixin, TestCase):
def test_week_view(self):
res = self.client.get('/dates/books/2008/week/39/')
@@ -467,8 +481,7 @@ class WeekArchiveViewTests(TestCase):
@override_settings(ROOT_URLCONF='generic_views.urls')
-class DayArchiveViewTests(TestCase):
- fixtures = ['generic-views-test-data.json']
+class DayArchiveViewTests(TestDataMixin, TestCase):
def test_day_view(self):
res = self.client.get('/dates/books/2008/oct/01/')
@@ -585,14 +598,13 @@ class DayArchiveViewTests(TestCase):
@override_settings(ROOT_URLCONF='generic_views.urls')
-class DateDetailViewTests(TestCase):
- fixtures = ['generic-views-test-data.json']
+class DateDetailViewTests(TestDataMixin, TestCase):
def test_date_detail_by_pk(self):
- res = self.client.get('/dates/books/2008/oct/01/1/')
+ res = self.client.get('/dates/books/2008/oct/01/%s/' % self.book1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Book.objects.get(pk=1))
- self.assertEqual(res.context['book'], Book.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.book1)
+ self.assertEqual(res.context['book'], self.book1)
self.assertTemplateUsed(res, 'generic_views/book_detail.html')
def test_date_detail_by_slug(self):
@@ -601,9 +613,9 @@ class DateDetailViewTests(TestCase):
self.assertEqual(res.context['book'], Book.objects.get(slug='dreaming-in-code'))
def test_date_detail_custom_month_format(self):
- res = self.client.get('/dates/books/2008/10/01/1/')
+ res = self.client.get('/dates/books/2008/10/01/%s/' % self.book1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['book'], Book.objects.get(pk=1))
+ self.assertEqual(res.context['book'], self.book1)
def test_date_detail_allow_future(self):
future = (datetime.date.today() + datetime.timedelta(days=60))
@@ -628,14 +640,14 @@ class DateDetailViewTests(TestCase):
Refs #16918.
"""
res = self.client.get(
- '/dates/books/get_object_custom_queryset/2006/may/01/2/')
+ '/dates/books/get_object_custom_queryset/2006/may/01/%s/' % self.book2.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Book.objects.get(pk=2))
- self.assertEqual(res.context['book'], Book.objects.get(pk=2))
+ self.assertEqual(res.context['object'], self.book2)
+ self.assertEqual(res.context['book'], self.book2)
self.assertTemplateUsed(res, 'generic_views/book_detail.html')
res = self.client.get(
- '/dates/books/get_object_custom_queryset/2008/oct/01/1/')
+ '/dates/books/get_object_custom_queryset/2008/oct/01/9999999/')
self.assertEqual(res.status_code, 404)
def test_get_object_custom_queryset_numqueries(self):
diff --git a/tests/generic_views/test_detail.py b/tests/generic_views/test_detail.py
index 1c8f951ca4..9f3933f1fa 100644
--- a/tests/generic_views/test_detail.py
+++ b/tests/generic_views/test_detail.py
@@ -1,15 +1,31 @@
+# -*- coding: utf-8 -*-
from __future__ import unicode_literals
+import datetime
+
from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist
from django.test import TestCase, override_settings
from django.views.generic.base import View
-from .models import Artist, Author, Page
+from .models import Artist, Author, Book, Page
@override_settings(ROOT_URLCONF='generic_views.urls')
class DetailViewTest(TestCase):
- fixtures = ['generic-views-test-data.json']
+
+ @classmethod
+ def setUpTestData(cls):
+ cls.artist1 = Artist.objects.create(name='Rene Magritte')
+ cls.author1 = Author.objects.create(name='Roberto Bolaño', slug='roberto-bolano')
+ cls.author2 = Author.objects.create(name='Scott Rosenberg', slug='scott-rosenberg')
+ cls.book1 = Book.objects.create(name='2066', slug='2066', pages=800, pubdate=datetime.date(2008, 10, 1))
+ cls.book1.authors.add(cls.author1)
+ cls.book2 = Book.objects.create(
+ name='Dreaming in Code', slug='dreaming-in-code', pages=300, pubdate=datetime.date(2006, 5, 1)
+ )
+ cls.page1 = Page.objects.create(
+ content='I was once bitten by a moose.', template='generic_views/page_template.html'
+ )
def test_simple_object(self):
res = self.client.get('/detail/obj/')
@@ -19,10 +35,10 @@ class DetailViewTest(TestCase):
self.assertTemplateUsed(res, 'generic_views/detail.html')
def test_detail_by_pk(self):
- res = self.client.get('/detail/author/1/')
+ res = self.client.get('/detail/author/%s/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Author.objects.get(pk=1))
- self.assertEqual(res.context['author'], Author.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['author'], self.author1)
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
def test_detail_missing_object(self):
@@ -33,10 +49,10 @@ class DetailViewTest(TestCase):
self.assertRaises(ObjectDoesNotExist, self.client.get, '/detail/doesnotexist/1/')
def test_detail_by_custom_pk(self):
- res = self.client.get('/detail/author/bycustompk/1/')
+ res = self.client.get('/detail/author/bycustompk/%s/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Author.objects.get(pk=1))
- self.assertEqual(res.context['author'], Author.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['author'], self.author1)
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
def test_detail_by_slug(self):
@@ -54,73 +70,70 @@ class DetailViewTest(TestCase):
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
def test_detail_by_pk_ignore_slug(self):
- author = Author.objects.get(pk=1)
- res = self.client.get('/detail/author/bypkignoreslug/1-roberto-bolano/')
+ res = self.client.get('/detail/author/bypkignoreslug/%s-roberto-bolano/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], author)
- self.assertEqual(res.context['author'], author)
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['author'], self.author1)
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
def test_detail_by_pk_ignore_slug_mismatch(self):
- author = Author.objects.get(pk=1)
- res = self.client.get('/detail/author/bypkignoreslug/1-scott-rosenberg/')
+ res = self.client.get('/detail/author/bypkignoreslug/%s-scott-rosenberg/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], author)
- self.assertEqual(res.context['author'], author)
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['author'], self.author1)
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
def test_detail_by_pk_and_slug(self):
- author = Author.objects.get(pk=1)
- res = self.client.get('/detail/author/bypkandslug/1-roberto-bolano/')
+ res = self.client.get('/detail/author/bypkandslug/%s-roberto-bolano/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], author)
- self.assertEqual(res.context['author'], author)
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['author'], self.author1)
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
def test_detail_by_pk_and_slug_mismatch_404(self):
- res = self.client.get('/detail/author/bypkandslug/1-scott-rosenberg/')
+ res = self.client.get('/detail/author/bypkandslug/%s-scott-rosenberg/' % self.author1.pk)
self.assertEqual(res.status_code, 404)
def test_verbose_name(self):
- res = self.client.get('/detail/artist/1/')
+ res = self.client.get('/detail/artist/%s/' % self.artist1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Artist.objects.get(pk=1))
- self.assertEqual(res.context['artist'], Artist.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.artist1)
+ self.assertEqual(res.context['artist'], self.artist1)
self.assertTemplateUsed(res, 'generic_views/artist_detail.html')
def test_template_name(self):
- res = self.client.get('/detail/author/1/template_name/')
+ res = self.client.get('/detail/author/%s/template_name/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Author.objects.get(pk=1))
- self.assertEqual(res.context['author'], Author.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['author'], self.author1)
self.assertTemplateUsed(res, 'generic_views/about.html')
def test_template_name_suffix(self):
- res = self.client.get('/detail/author/1/template_name_suffix/')
+ res = self.client.get('/detail/author/%s/template_name_suffix/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Author.objects.get(pk=1))
- self.assertEqual(res.context['author'], Author.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['author'], self.author1)
self.assertTemplateUsed(res, 'generic_views/author_view.html')
def test_template_name_field(self):
- res = self.client.get('/detail/page/1/field/')
+ res = self.client.get('/detail/page/%s/field/' % self.page1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Page.objects.get(pk=1))
- self.assertEqual(res.context['page'], Page.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.page1)
+ self.assertEqual(res.context['page'], self.page1)
self.assertTemplateUsed(res, 'generic_views/page_template.html')
def test_context_object_name(self):
- res = self.client.get('/detail/author/1/context_object_name/')
+ res = self.client.get('/detail/author/%s/context_object_name/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Author.objects.get(pk=1))
- self.assertEqual(res.context['thingy'], Author.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.author1)
+ self.assertEqual(res.context['thingy'], self.author1)
self.assertNotIn('author', res.context)
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
def test_duplicated_context_object_name(self):
- res = self.client.get('/detail/author/1/dupe_context_object_name/')
+ res = self.client.get('/detail/author/%s/dupe_context_object_name/' % self.author1.pk)
self.assertEqual(res.status_code, 200)
- self.assertEqual(res.context['object'], Author.objects.get(pk=1))
+ self.assertEqual(res.context['object'], self.author1)
self.assertNotIn('author', res.context)
self.assertTemplateUsed(res, 'generic_views/author_detail.html')
diff --git a/tests/generic_views/test_list.py b/tests/generic_views/test_list.py
index b9274242c9..e6ce7cb539 100644
--- a/tests/generic_views/test_list.py
+++ b/tests/generic_views/test_list.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
@@ -7,12 +8,25 @@ from django.test import TestCase, override_settings
from django.utils.encoding import force_str
from django.views.generic.base import View
-from .models import Artist, Author, Book
+from .models import Artist, Author, Book, Page
@override_settings(ROOT_URLCONF='generic_views.urls')
class ListViewTests(TestCase):
- fixtures = ['generic-views-test-data.json']
+
+ @classmethod
+ def setUpTestData(cls):
+ cls.artist1 = Artist.objects.create(name='Rene Magritte')
+ cls.author1 = Author.objects.create(name='Roberto Bolaño', slug='roberto-bolano')
+ cls.author2 = Author.objects.create(name='Scott Rosenberg', slug='scott-rosenberg')
+ cls.book1 = Book.objects.create(name='2066', slug='2066', pages=800, pubdate=datetime.date(2008, 10, 1))
+ cls.book1.authors.add(cls.author1)
+ cls.book2 = Book.objects.create(
+ name='Dreaming in Code', slug='dreaming-in-code', pages=300, pubdate=datetime.date(2006, 5, 1)
+ )
+ cls.page1 = Page.objects.create(
+ content='I was once bitten by a moose.', template='generic_views/page_template.html'
+ )
def test_items(self):
res = self.client.get('/list/dict/')
diff --git a/tests/generic_views/views.py b/tests/generic_views/views.py
index 6dcac21aa6..b40bbe92f0 100644
--- a/tests/generic_views/views.py
+++ b/tests/generic_views/views.py
@@ -218,7 +218,7 @@ class AuthorGetQuerySetFormView(generic.edit.ModelFormMixin):
class BookDetailGetObjectCustomQueryset(BookDetail):
def get_object(self, queryset=None):
return super(BookDetailGetObjectCustomQueryset, self).get_object(
- queryset=Book.objects.filter(pk=2))
+ queryset=Book.objects.filter(pk=self.kwargs['pk']))
class CustomMultipleObjectMixinView(generic.list.MultipleObjectMixin, generic.View):