From f01e1cd42561263eb9f1130ebcb39ffa6eecbe63 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Tue, 25 Jan 2011 00:42:54 +0000 Subject: [1.2.X] Fixed #14796 -- Modified order of operations performed on field names by the inspectdb command so it doesn't generates model fields with names equal to Python keywords. Thanks pappjm at gmail dot com for the report, mmcnickle for the fix and Alex for simplifying the tests. Backport of r15296 and r15297 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15301 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/inspectdb/__init__.py | 1 + tests/regressiontests/inspectdb/models.py | 8 ++++++++ tests/regressiontests/inspectdb/tests.py | 14 ++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 tests/regressiontests/inspectdb/__init__.py create mode 100644 tests/regressiontests/inspectdb/models.py create mode 100644 tests/regressiontests/inspectdb/tests.py (limited to 'tests/regressiontests') diff --git a/tests/regressiontests/inspectdb/__init__.py b/tests/regressiontests/inspectdb/__init__.py new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/tests/regressiontests/inspectdb/__init__.py @@ -0,0 +1 @@ + diff --git a/tests/regressiontests/inspectdb/models.py b/tests/regressiontests/inspectdb/models.py new file mode 100644 index 0000000000..fc2548b441 --- /dev/null +++ b/tests/regressiontests/inspectdb/models.py @@ -0,0 +1,8 @@ +from django.db import models + + +class People(models.Model): + name = models.CharField(max_length=255) + +class Message(models.Model): + from_field = models.ForeignKey(People, db_column='from_id') diff --git a/tests/regressiontests/inspectdb/tests.py b/tests/regressiontests/inspectdb/tests.py new file mode 100644 index 0000000000..a81a97df5e --- /dev/null +++ b/tests/regressiontests/inspectdb/tests.py @@ -0,0 +1,14 @@ +from StringIO import StringIO + +from django.core.management import call_command +from django.test import TestCase + + +class InspectDBTestCase(TestCase): + def test_attribute_name_not_python_keyword(self): + out = StringIO() + call_command('inspectdb', stdout=out) + error_message = "inspectdb generated an attribute name which is a python keyword" + self.assertFalse("from = models.ForeignKey(InspectdbPeople)" in out.getvalue(), msg=error_message) + self.assertTrue("from_field = models.ForeignKey(InspectdbPeople)" in out.getvalue()) + out.close() -- cgit v1.3