From e118e3af371ae58cee7420d2ea2020c8bdeb461e Mon Sep 17 00:00:00 2001 From: Adam DePue Date: Wed, 5 Nov 2014 02:57:47 +0000 Subject: [PATCH] Fixed #23761 -- Added test for MySQL validator and db_type is None. The issue was fixed on master in e9103402c0fa873aea58a6a11dba510cd308cb84 so this just forwardports the test and release notes from stable/1.7.x. Forwardport of 2d12a59938 from stable/1.7.x --- docs/releases/1.7.2.txt | 5 ++++- .../test_custom_fields.py | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/invalid_models_tests/test_custom_fields.py diff --git a/docs/releases/1.7.2.txt b/docs/releases/1.7.2.txt index 207b7d2a0c..976210367d 100644 --- a/docs/releases/1.7.2.txt +++ b/docs/releases/1.7.2.txt @@ -51,8 +51,11 @@ Bugfixes (:ticket:`23420`). * Fixed a migration serializing bug involving ``float("nan")`` and - ``float("inf")`` (:ticket:23770:). + ``float("inf")`` (:ticket:`23770`). * Fixed a regression where custom form fields having a ``queryset`` attribute but no ``limit_choices_to`` could not be used in a :class:`~django.forms.ModelForm` (:ticket:`23795`). + +* Fixed a custom field type validation error with MySQL backend when + ``db_type`` returned ``None`` (:ticket:`23761`). diff --git a/tests/invalid_models_tests/test_custom_fields.py b/tests/invalid_models_tests/test_custom_fields.py new file mode 100644 index 0000000000..03e65b599b --- /dev/null +++ b/tests/invalid_models_tests/test_custom_fields.py @@ -0,0 +1,20 @@ +from django.db import models + +from .base import IsolatedModelsTestCase + + +class CustomFieldTest(IsolatedModelsTestCase): + + def test_none_column(self): + class NoColumnField(models.AutoField): + def db_type(self, connection): + # None indicates not to create a column in the database. + return None + + class Model(models.Model): + field = NoColumnField(primary_key=True, db_column="other_field") + other_field = models.IntegerField() + + field = Model._meta.get_field('field') + errors = field.check() + self.assertEqual(errors, [])