summaryrefslogtreecommitdiff
path: root/tests/regressiontests/generic_inline_admin
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/generic_inline_admin')
-rw-r--r--tests/regressiontests/generic_inline_admin/admin.py44
-rw-r--r--tests/regressiontests/generic_inline_admin/models.py39
-rw-r--r--tests/regressiontests/generic_inline_admin/tests.py9
-rw-r--r--tests/regressiontests/generic_inline_admin/urls.py5
4 files changed, 59 insertions, 38 deletions
diff --git a/tests/regressiontests/generic_inline_admin/admin.py b/tests/regressiontests/generic_inline_admin/admin.py
new file mode 100644
index 0000000000..87224edab7
--- /dev/null
+++ b/tests/regressiontests/generic_inline_admin/admin.py
@@ -0,0 +1,44 @@
+from django.contrib import admin
+from django.contrib.contenttypes import generic
+
+from models import (Media, PhoneNumber, Episode, EpisodeExtra, Contact,
+ Category, EpisodePermanent, EpisodeMaxNum)
+
+site = admin.AdminSite(name="admin")
+
+class MediaInline(generic.GenericTabularInline):
+ model = Media
+
+
+class EpisodeAdmin(admin.ModelAdmin):
+ inlines = [
+ MediaInline,
+ ]
+
+
+class MediaExtraInline(generic.GenericTabularInline):
+ model = Media
+ extra = 0
+
+
+class MediaMaxNumInline(generic.GenericTabularInline):
+ model = Media
+ extra = 5
+ max_num = 2
+
+
+class PhoneNumberInline(generic.GenericTabularInline):
+ model = PhoneNumber
+
+
+class MediaPermanentInline(generic.GenericTabularInline):
+ model = Media
+ can_delete = False
+
+
+site.register(Episode, EpisodeAdmin)
+site.register(EpisodeExtra, inlines=[MediaExtraInline])
+site.register(EpisodeMaxNum, inlines=[MediaMaxNumInline])
+site.register(Contact, inlines=[PhoneNumberInline])
+site.register(Category)
+site.register(EpisodePermanent, inlines=[MediaPermanentInline])
diff --git a/tests/regressiontests/generic_inline_admin/models.py b/tests/regressiontests/generic_inline_admin/models.py
index 32ecd3b889..e78f110416 100644
--- a/tests/regressiontests/generic_inline_admin/models.py
+++ b/tests/regressiontests/generic_inline_admin/models.py
@@ -1,13 +1,14 @@
from django.db import models
-from django.contrib import admin
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
+
class Episode(models.Model):
name = models.CharField(max_length=100)
length = models.CharField(max_length=100, blank=True)
author = models.CharField(max_length=100, blank=True)
+
class Media(models.Model):
"""
Media that can associated to any object.
@@ -22,15 +23,6 @@ class Media(models.Model):
def __unicode__(self):
return self.url
-class MediaInline(generic.GenericTabularInline):
- model = Media
-
-class EpisodeAdmin(admin.ModelAdmin):
- inlines = [
- MediaInline,
- ]
-admin.site.register(Episode, EpisodeAdmin)
-
#
# These models let us test the different GenericInline settings at
# different urls in the admin site.
@@ -43,34 +35,21 @@ admin.site.register(Episode, EpisodeAdmin)
class EpisodeExtra(Episode):
pass
-class MediaExtraInline(generic.GenericTabularInline):
- model = Media
- extra = 0
-
-admin.site.register(EpisodeExtra, inlines=[MediaExtraInline])
#
# Generic inline with extra and max_num
#
-
class EpisodeMaxNum(Episode):
pass
-class MediaMaxNumInline(generic.GenericTabularInline):
- model = Media
- extra = 5
- max_num = 2
-
-admin.site.register(EpisodeMaxNum, inlines=[MediaMaxNumInline])
-
#
# Generic inline with unique_together
#
-
class Category(models.Model):
name = models.CharField(max_length=50)
+
class PhoneNumber(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
@@ -81,25 +60,15 @@ class PhoneNumber(models.Model):
class Meta:
unique_together = (('content_type', 'object_id', 'phone_number',),)
+
class Contact(models.Model):
name = models.CharField(max_length=50)
phone_numbers = generic.GenericRelation(PhoneNumber)
-class PhoneNumberInline(generic.GenericTabularInline):
- model = PhoneNumber
-
-admin.site.register(Contact, inlines=[PhoneNumberInline])
-admin.site.register(Category)
-
#
# Generic inline with can_delete=False
#
-
class EpisodePermanent(Episode):
pass
-class MediaPermanentInline(generic.GenericTabularInline):
- model = Media
- can_delete = False
-admin.site.register(EpisodePermanent, inlines=[MediaPermanentInline])
diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py
index da59922fe5..858d6a5f3b 100644
--- a/tests/regressiontests/generic_inline_admin/tests.py
+++ b/tests/regressiontests/generic_inline_admin/tests.py
@@ -10,10 +10,12 @@ from django.test import TestCase
# local test models
from models import (Episode, EpisodeExtra, EpisodeMaxNum, Media,
- MediaInline, EpisodePermanent, MediaPermanentInline, Category)
+ EpisodePermanent, Category)
+from admin import MediaInline, MediaPermanentInline
class GenericAdminViewTest(TestCase):
+ urls = "regressiontests.generic_inline_admin.urls"
fixtures = ['users.xml']
def setUp(self):
@@ -125,6 +127,7 @@ class GenericAdminViewTest(TestCase):
self.assertTrue(formset.get_queryset().ordered)
class GenericInlineAdminParametersTest(TestCase):
+ urls = "regressiontests.generic_inline_admin.urls"
fixtures = ['users.xml']
def setUp(self):
@@ -177,6 +180,7 @@ class GenericInlineAdminParametersTest(TestCase):
class GenericInlineAdminWithUniqueTogetherTest(TestCase):
+ urls = "regressiontests.generic_inline_admin.urls"
fixtures = ['users.xml']
def setUp(self):
@@ -203,6 +207,8 @@ class GenericInlineAdminWithUniqueTogetherTest(TestCase):
self.assertEqual(response.status_code, 302) # redirect somewhere
class NoInlineDeletionTest(TestCase):
+ urls = "regressiontests.generic_inline_admin.urls"
+
def test_no_deletion(self):
fake_site = object()
inline = MediaPermanentInline(EpisodePermanent, fake_site)
@@ -211,6 +217,7 @@ class NoInlineDeletionTest(TestCase):
self.assertFalse(formset.can_delete)
class GenericInlineModelAdminTest(TestCase):
+ urls = "regressiontests.generic_inline_admin.urls"
def setUp(self):
self.site = AdminSite()
diff --git a/tests/regressiontests/generic_inline_admin/urls.py b/tests/regressiontests/generic_inline_admin/urls.py
index f41587280d..03431d3226 100644
--- a/tests/regressiontests/generic_inline_admin/urls.py
+++ b/tests/regressiontests/generic_inline_admin/urls.py
@@ -1,6 +1,7 @@
from django.conf.urls import patterns, include
-from django.contrib import admin
+
+import admin
urlpatterns = patterns('',
- (r'^admin/', include(admin.site.urls)),
+ (r'^generic_inline_admin/admin/', include(admin.site.urls)),
)