diff options
| author | Josh Smeaton <josh.smeaton@gmail.com> | 2015-02-23 11:53:57 +1100 |
|---|---|---|
| committer | Josh Smeaton <josh.smeaton@gmail.com> | 2015-03-05 10:10:32 +1100 |
| commit | 39a7eed1bbf12020a077e4bec3d82e08f171a021 (patch) | |
| tree | 225be14a94d57517d9de646569498eb45d0a4352 /tests/generic_views | |
| parent | d6969abf239d52f6dfed7384c6ceb7df7e618342 (diff) | |
Converted test fixtures to setUpTestData methods
Diffstat (limited to 'tests/generic_views')
| -rw-r--r-- | tests/generic_views/fixtures/generic-views-test-data.json | 54 | ||||
| -rw-r--r-- | tests/generic_views/test_dates.py | 56 | ||||
| -rw-r--r-- | tests/generic_views/test_detail.py | 89 | ||||
| -rw-r--r-- | tests/generic_views/test_list.py | 18 | ||||
| -rw-r--r-- | tests/generic_views/views.py | 2 |
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): |
