From d3cf6cfacfb828faad4f4f97c904e259304649b3 Mon Sep 17 00:00:00 2001 From: Vajrasky Kok Date: Sun, 24 Nov 2013 21:12:22 +0800 Subject: Fixed #17713 -- Renamed BaseDatabaseFeatures.allows_primary_key_0 to allows_auto_pk_0. MySQL does allow primary key with value 0. It only forbids autoincrement primary key with value 0. Thanks Claude Paroz for the report. --- tests/backends/tests.py | 5 ++--- tests/bulk_create/tests.py | 3 +-- tests/inline_formsets/tests.py | 2 +- tests/serializers_regress/tests.py | 6 +++--- 4 files changed, 7 insertions(+), 9 deletions(-) (limited to 'tests') diff --git a/tests/backends/tests.py b/tests/backends/tests.py index 9548f60a77..d5116898ec 100644 --- a/tests/backends/tests.py +++ b/tests/backends/tests.py @@ -934,10 +934,9 @@ class ThreadTests(TestCase): class MySQLPKZeroTests(TestCase): """ Zero as id for AutoField should raise exception in MySQL, because MySQL - does not allow zero for automatic primary key. + does not allow zero for autoincrement primary key. """ - - @skipIfDBFeature('allows_primary_key_0') + @skipIfDBFeature('allows_auto_pk_0') def test_zero_as_autoval(self): with self.assertRaises(ValueError): models.Square.objects.create(id=0, root=0, square=1) diff --git a/tests/bulk_create/tests.py b/tests/bulk_create/tests.py index 367cbde04d..8648184223 100644 --- a/tests/bulk_create/tests.py +++ b/tests/bulk_create/tests.py @@ -70,13 +70,12 @@ class BulkCreateTests(TestCase): "CA", "IL", "ME", "NY", ], attrgetter("two_letter_code")) - @skipIfDBFeature('allows_primary_key_0') + @skipIfDBFeature('allows_auto_pk_0') def test_zero_as_autoval(self): """ Zero as id for AutoField should raise exception in MySQL, because MySQL does not allow zero for automatic primary key. """ - valid_country = Country(name='Germany', iso_two_letter='DE') invalid_country = Country(id=0, name='Poland', iso_two_letter='PL') with self.assertRaises(ValueError): diff --git a/tests/inline_formsets/tests.py b/tests/inline_formsets/tests.py index 87add7f6e6..6f6bc76ac8 100644 --- a/tests/inline_formsets/tests.py +++ b/tests/inline_formsets/tests.py @@ -162,7 +162,7 @@ class InlineFormsetFactoryTest(TestCase): Parent, Child, exclude=('school',), fk_name='mother' ) - @skipUnlessDBFeature('allows_primary_key_0') + @skipUnlessDBFeature('allows_auto_pk_0') def test_zero_primary_key(self): # Regression test for #21472 poet = Poet.objects.create(id=0, name='test') diff --git a/tests/serializers_regress/tests.py b/tests/serializers_regress/tests.py index d71dd8c406..489e68ce77 100644 --- a/tests/serializers_regress/tests.py +++ b/tests/serializers_regress/tests.py @@ -389,10 +389,10 @@ if connection.features.interprets_empty_strings_as_nulls: data[2]._meta.get_field('data').empty_strings_allowed and data[3] is None)] -# Regression test for #8651 -- a FK to an object iwth PK of 0 +# Regression test for #8651 -- a FK to an object with PK of 0 # This won't work on MySQL since it won't let you create an object -# with a primary key of 0, -if connection.features.allows_primary_key_0: +# with an autoincrement primary key of 0, +if connection.features.allows_auto_pk_0: test_data.extend([ (data_obj, 0, Anchor, "Anchor 0"), (fk_obj, 465, FKData, 0), -- cgit v1.3