diff options
Diffstat (limited to 'parts/django/tests/regressiontests/admin_inlines')
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) |