summaryrefslogtreecommitdiff
path: root/parts/django/tests/regressiontests/admin_inlines
diff options
context:
space:
mode:
Diffstat (limited to 'parts/django/tests/regressiontests/admin_inlines')
-rw-r--r--parts/django/tests/regressiontests/admin_inlines/__init__.py0
-rw-r--r--parts/django/tests/regressiontests/admin_inlines/fixtures/admin-views-users.xml17
-rw-r--r--parts/django/tests/regressiontests/admin_inlines/models.py125
-rw-r--r--parts/django/tests/regressiontests/admin_inlines/tests.py121
4 files changed, 0 insertions, 263 deletions
diff --git a/parts/django/tests/regressiontests/admin_inlines/__init__.py b/parts/django/tests/regressiontests/admin_inlines/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/parts/django/tests/regressiontests/admin_inlines/__init__.py
+++ /dev/null
diff --git a/parts/django/tests/regressiontests/admin_inlines/fixtures/admin-views-users.xml b/parts/django/tests/regressiontests/admin_inlines/fixtures/admin-views-users.xml
deleted file mode 100644
index aba8f4a..0000000
--- a/parts/django/tests/regressiontests/admin_inlines/fixtures/admin-views-users.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<django-objects version="1.0">
- <object pk="100" model="auth.user">
- <field type="CharField" name="username">super</field>
- <field type="CharField" name="first_name">Super</field>
- <field type="CharField" name="last_name">User</field>
- <field type="CharField" name="email">super@example.com</field>
- <field type="CharField" name="password">sha1$995a3$6011485ea3834267d719b4c801409b8b1ddd0158</field>
- <field type="BooleanField" name="is_staff">True</field>
- <field type="BooleanField" name="is_active">True</field>
- <field type="BooleanField" name="is_superuser">True</field>
- <field type="DateTimeField" name="last_login">2007-05-30 13:20:10</field>
- <field type="DateTimeField" name="date_joined">2007-05-30 13:20:10</field>
- <field to="auth.group" name="groups" rel="ManyToManyRel"></field>
- <field to="auth.permission" name="user_permissions" rel="ManyToManyRel"></field>
- </object>
-</django-objects>
diff --git a/parts/django/tests/regressiontests/admin_inlines/models.py b/parts/django/tests/regressiontests/admin_inlines/models.py
deleted file mode 100644
index 4e5c4e3..0000000
--- a/parts/django/tests/regressiontests/admin_inlines/models.py
+++ /dev/null
@@ -1,125 +0,0 @@
-"""
-Testing of admin inline formsets.
-
-"""
-from django.db import models
-from django.contrib import admin
-from django.contrib.contenttypes.models import ContentType
-from django.contrib.contenttypes import generic
-
-class Parent(models.Model):
- name = models.CharField(max_length=50)
-
- def __unicode__(self):
- return self.name
-
-class Teacher(models.Model):
- name = models.CharField(max_length=50)
-
- def __unicode__(self):
- return self.name
-
-class Child(models.Model):
- name = models.CharField(max_length=50)
- teacher = models.ForeignKey(Teacher)
-
- content_type = models.ForeignKey(ContentType)
- object_id = models.PositiveIntegerField()
- parent = generic.GenericForeignKey()
-
- def __unicode__(self):
- return u'I am %s, a child of %s' % (self.name, self.parent)
-
-class Book(models.Model):
- name = models.CharField(max_length=50)
-
-class Author(models.Model):
- name = models.CharField(max_length=50)
- books = models.ManyToManyField(Book)
-
-class BookInline(admin.TabularInline):
- model = Author.books.through
-
-class AuthorAdmin(admin.ModelAdmin):
- inlines = [BookInline]
-
-admin.site.register(Author, AuthorAdmin)
-
-class Holder(models.Model):
- dummy = models.IntegerField()
-
-
-class Inner(models.Model):
- dummy = models.IntegerField()
- holder = models.ForeignKey(Holder)
- readonly = models.CharField("Inner readonly label", max_length=1)
-
-
-class InnerInline(admin.StackedInline):
- model = Inner
- can_delete = False
- readonly_fields = ('readonly',) # For bug #13174 tests.
-
-
-class Holder2(models.Model):
- dummy = models.IntegerField()
-
-
-class Inner2(models.Model):
- dummy = models.IntegerField()
- holder = models.ForeignKey(Holder2)
-
-class HolderAdmin(admin.ModelAdmin):
-
- class Media:
- js = ('my_awesome_admin_scripts.js',)
-
-class InnerInline2(admin.StackedInline):
- model = Inner2
-
- class Media:
- js = ('my_awesome_inline_scripts.js',)
-
-class Holder3(models.Model):
- dummy = models.IntegerField()
-
-
-class Inner3(models.Model):
- dummy = models.IntegerField()
- holder = models.ForeignKey(Holder3)
-
-class InnerInline3(admin.StackedInline):
- model = Inner3
-
- class Media:
- js = ('my_awesome_inline_scripts.js',)
-
-# Test bug #12561 and #12778
-# only ModelAdmin media
-admin.site.register(Holder, HolderAdmin, inlines=[InnerInline])
-# ModelAdmin and Inline media
-admin.site.register(Holder2, HolderAdmin, inlines=[InnerInline2])
-# only Inline media
-admin.site.register(Holder3, inlines=[InnerInline3])
-
-# Models for #12749
-
-class Person(models.Model):
- firstname = models.CharField(max_length=15)
-
-class OutfitItem(models.Model):
- name = models.CharField(max_length=15)
-
-class Fashionista(models.Model):
- person = models.OneToOneField(Person, primary_key=True)
- weaknesses = models.ManyToManyField(OutfitItem, through='ShoppingWeakness', blank=True)
-
-class ShoppingWeakness(models.Model):
- fashionista = models.ForeignKey(Fashionista)
- item = models.ForeignKey(OutfitItem)
-
-class InlineWeakness(admin.TabularInline):
- model = ShoppingWeakness
- extra = 1
-
-admin.site.register(Fashionista, inlines=[InlineWeakness])
diff --git a/parts/django/tests/regressiontests/admin_inlines/tests.py b/parts/django/tests/regressiontests/admin_inlines/tests.py
deleted file mode 100644
index b10474d..0000000
--- a/parts/django/tests/regressiontests/admin_inlines/tests.py
+++ /dev/null
@@ -1,121 +0,0 @@
-from django.contrib.admin.helpers import InlineAdminForm
-from django.contrib.contenttypes.models import ContentType
-from django.test import TestCase
-
-# local test models
-from models import (Holder, Inner, InnerInline, Holder2, Inner2, Holder3,
- Inner3, Person, OutfitItem, Fashionista, Teacher, Parent, Child)
-
-
-class TestInline(TestCase):
- fixtures = ['admin-views-users.xml']
-
- def setUp(self):
- holder = Holder(dummy=13)
- holder.save()
- Inner(dummy=42, holder=holder).save()
- self.change_url = '/test_admin/admin/admin_inlines/holder/%i/' % holder.id
-
- result = self.client.login(username='super', password='secret')
- self.assertEqual(result, True)
-
- def tearDown(self):
- self.client.logout()
-
- def test_can_delete(self):
- """
- can_delete should be passed to inlineformset factory.
- """
- response = self.client.get(self.change_url)
- inner_formset = response.context[-1]['inline_admin_formsets'][0].formset
- expected = InnerInline.can_delete
- actual = inner_formset.can_delete
- self.assertEqual(expected, actual, 'can_delete must be equal')
-
- def test_readonly_stacked_inline_label(self):
- """Bug #13174."""
- holder = Holder.objects.create(dummy=42)
- inner = Inner.objects.create(holder=holder, dummy=42, readonly='')
- response = self.client.get('/test_admin/admin/admin_inlines/holder/%i/'
- % holder.id)
- self.assertContains(response, '<label>Inner readonly label:</label>')
-
- def test_many_to_many_inlines(self):
- "Autogenerated many-to-many inlines are displayed correctly (#13407)"
- response = self.client.get('/test_admin/admin/admin_inlines/author/add/')
- # The heading for the m2m inline block uses the right text
- self.assertContains(response, '<h2>Author-book relationships</h2>')
- # The "add another" label is correct
- self.assertContains(response, 'Add another Author-Book Relationship')
- # The '+' is dropped from the autogenerated form prefix (Author_books+)
- self.assertContains(response, 'id="id_Author_books-TOTAL_FORMS"')
-
- def test_inline_primary(self):
- person = Person.objects.create(firstname='Imelda')
- item = OutfitItem.objects.create(name='Shoes')
- # Imelda likes shoes, but can't cary her own bags.
- data = {
- 'shoppingweakness_set-TOTAL_FORMS': 1,
- 'shoppingweakness_set-INITIAL_FORMS': 0,
- 'shoppingweakness_set-MAX_NUM_FORMS': 0,
- '_save': u'Save',
- 'person': person.id,
- 'max_weight': 0,
- 'shoppingweakness_set-0-item': item.id,
- }
- response = self.client.post('/test_admin/admin/admin_inlines/fashionista/add/', data)
- self.assertEqual(response.status_code, 302)
- self.assertEqual(len(Fashionista.objects.filter(person__firstname='Imelda')), 1)
-
-class TestInlineMedia(TestCase):
- fixtures = ['admin-views-users.xml']
-
- def setUp(self):
-
- result = self.client.login(username='super', password='secret')
- self.assertEqual(result, True)
-
- def tearDown(self):
- self.client.logout()
-
- def test_inline_media_only_base(self):
- holder = Holder(dummy=13)
- holder.save()
- Inner(dummy=42, holder=holder).save()
- change_url = '/test_admin/admin/admin_inlines/holder/%i/' % holder.id
- response = self.client.get(change_url)
- self.assertContains(response, 'my_awesome_admin_scripts.js')
-
- def test_inline_media_only_inline(self):
- holder = Holder3(dummy=13)
- holder.save()
- Inner3(dummy=42, holder=holder).save()
- change_url = '/test_admin/admin/admin_inlines/holder3/%i/' % holder.id
- response = self.client.get(change_url)
- self.assertContains(response, 'my_awesome_inline_scripts.js')
-
- def test_all_inline_media(self):
- holder = Holder2(dummy=13)
- holder.save()
- Inner2(dummy=42, holder=holder).save()
- change_url = '/test_admin/admin/admin_inlines/holder2/%i/' % holder.id
- response = self.client.get(change_url)
- self.assertContains(response, 'my_awesome_admin_scripts.js')
- self.assertContains(response, 'my_awesome_inline_scripts.js')
-
-class TestInlineAdminForm(TestCase):
-
- def test_immutable_content_type(self):
- """Regression for #9362
- The problem depends only on InlineAdminForm and its "original"
- argument, so we can safely set the other arguments to None/{}. We just
- need to check that the content_type argument of Child isn't altered by
- the internals of the inline form."""
-
- sally = Teacher.objects.create(name='Sally')
- john = Parent.objects.create(name='John')
- joe = Child.objects.create(name='Joe', teacher=sally, parent=john)
-
- iaf = InlineAdminForm(None, None, {}, {}, joe)
- parent_ct = ContentType.objects.get_for_model(Parent)
- self.assertEqual(iaf.original.content_type, parent_ct)