mirror of
https://github.com/django/django.git
synced 2025-07-04 17:59:13 +00:00
[1.2.X] Added a skip for a test that fails in Oracle. Unlike other backends, Oracle does not allow duplicate rows where there is a unique_together constraint for which some but not all of the columns are NULL.
Backport of r15777 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15778 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
e81e64cd63
commit
05b197dbb1
@ -4,7 +4,8 @@ from datetime import date
|
||||
from decimal import Decimal
|
||||
|
||||
from django import forms
|
||||
from django.db import models
|
||||
from django.conf import settings
|
||||
from django.db import models, DEFAULT_DB_ALIAS
|
||||
from django.forms.models import (_get_foreign_key, inlineformset_factory,
|
||||
modelformset_factory, modelformset_factory)
|
||||
from django.test import TestCase
|
||||
@ -577,30 +578,33 @@ class ModelFormsetTest(TestCase):
|
||||
self.assertEqual(book1.title, 'Flowers of Evil')
|
||||
self.assertEqual(book1.notes, 'English translation of Les Fleurs du Mal')
|
||||
|
||||
# Test inline formsets where the inline-edited object has a
|
||||
# unique_together constraint with a nullable member
|
||||
if settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE'] != 'django.db.backends.oracle':
|
||||
def test_inline_formsets_with_nullable_unique_together(self):
|
||||
# Test inline formsets where the inline-edited object has a
|
||||
# unique_together constraint with a nullable member
|
||||
|
||||
AuthorBooksFormSet4 = inlineformset_factory(Author, BookWithOptionalAltEditor, can_delete=False, extra=2)
|
||||
AuthorBooksFormSet4 = inlineformset_factory(Author, BookWithOptionalAltEditor, can_delete=False, extra=2)
|
||||
author = Author.objects.create(pk=1, name='Charles Baudelaire')
|
||||
|
||||
data = {
|
||||
'bookwithoptionalalteditor_set-TOTAL_FORMS': '2', # the number of forms rendered
|
||||
'bookwithoptionalalteditor_set-INITIAL_FORMS': '0', # the number of forms with initial data
|
||||
'bookwithoptionalalteditor_set-MAX_NUM_FORMS': '', # the max number of forms
|
||||
'bookwithoptionalalteditor_set-0-author': '1',
|
||||
'bookwithoptionalalteditor_set-0-title': 'Les Fleurs du Mal',
|
||||
'bookwithoptionalalteditor_set-1-author': '1',
|
||||
'bookwithoptionalalteditor_set-1-title': 'Les Fleurs du Mal',
|
||||
}
|
||||
formset = AuthorBooksFormSet4(data, instance=author)
|
||||
self.assertTrue(formset.is_valid())
|
||||
data = {
|
||||
'bookwithoptionalalteditor_set-TOTAL_FORMS': '2', # the number of forms rendered
|
||||
'bookwithoptionalalteditor_set-INITIAL_FORMS': '0', # the number of forms with initial data
|
||||
'bookwithoptionalalteditor_set-MAX_NUM_FORMS': '', # the max number of forms
|
||||
'bookwithoptionalalteditor_set-0-author': '1',
|
||||
'bookwithoptionalalteditor_set-0-title': 'Les Fleurs du Mal',
|
||||
'bookwithoptionalalteditor_set-1-author': '1',
|
||||
'bookwithoptionalalteditor_set-1-title': 'Les Fleurs du Mal',
|
||||
}
|
||||
formset = AuthorBooksFormSet4(data, instance=author)
|
||||
self.assertTrue(formset.is_valid())
|
||||
|
||||
saved = formset.save()
|
||||
self.assertEqual(len(saved), 2)
|
||||
book1, book2 = saved
|
||||
self.assertEqual(book1.author_id, 1)
|
||||
self.assertEqual(book1.title, 'Les Fleurs du Mal')
|
||||
self.assertEqual(book2.author_id, 1)
|
||||
self.assertEqual(book2.title, 'Les Fleurs du Mal')
|
||||
saved = formset.save()
|
||||
self.assertEqual(len(saved), 2)
|
||||
book1, book2 = saved
|
||||
self.assertEqual(book1.author_id, 1)
|
||||
self.assertEqual(book1.title, 'Les Fleurs du Mal')
|
||||
self.assertEqual(book2.author_id, 1)
|
||||
self.assertEqual(book2.title, 'Les Fleurs du Mal')
|
||||
|
||||
def test_inline_formsets_with_custom_save_method(self):
|
||||
AuthorBooksFormSet = inlineformset_factory(Author, Book, can_delete=False, extra=2)
|
||||
|
Loading…
x
Reference in New Issue
Block a user