diff options
| author | Claude Paroz <claude@2xlibre.net> | 2014-07-05 20:48:57 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2014-07-06 21:19:27 +0200 |
| commit | b144bfb5ce1e3e283c7fddac29a4653c6bc7fb3f (patch) | |
| tree | fdc4a0e9b491aa5cfa07549126c97497456b9b44 /tests | |
| parent | 2572c07cc64177e985b453d0f0b819e85fe080cc (diff) | |
Fixed #21079 -- Further normalized table names in inspectdb
Thanks Michael Manfre for the report and Tim Graham for the review.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/inspectdb/models.py | 5 | ||||
| -rw-r--r-- | tests/inspectdb/tests.py | 16 |
2 files changed, 19 insertions, 2 deletions
diff --git a/tests/inspectdb/models.py b/tests/inspectdb/models.py index f7c8af73c6..6b55ca7881 100644 --- a/tests/inspectdb/models.py +++ b/tests/inspectdb/models.py @@ -30,7 +30,7 @@ class DigitsInColumnName(models.Model): leading_digits = models.CharField(max_length=11, db_column='45extra') -class SpecialColumnName(models.Model): +class SpecialName(models.Model): field = models.IntegerField(db_column='field') # Underscores field_field_0 = models.IntegerField(db_column='Field_') @@ -40,6 +40,9 @@ class SpecialColumnName(models.Model): prc_x = models.IntegerField(db_column='prc(%) x') non_ascii = models.IntegerField(db_column='tamaƱo') + class Meta: + db_table = "inspectdb_special.table name" + class ColumnTypes(models.Model): id = models.AutoField(primary_key=True) diff --git a/tests/inspectdb/tests.py b/tests/inspectdb/tests.py index c0502198d8..2fa4e25453 100644 --- a/tests/inspectdb/tests.py +++ b/tests/inspectdb/tests.py @@ -179,7 +179,9 @@ class InspectDBTestCase(TestCase): unsuitable for Python identifiers """ out = StringIO() - call_command('inspectdb', stdout=out) + call_command('inspectdb', + table_name_filter=lambda tn: tn.startswith('inspectdb_'), + stdout=out) output = out.getvalue() base_name = 'Field' if not connection.features.uppercases_column_names else 'field' self.assertIn("field = models.IntegerField()", output) @@ -193,6 +195,18 @@ class InspectDBTestCase(TestCase): else: self.assertIn("tama_o = models.IntegerField(db_column='tama\\xf1o')", output) + def test_table_name_introspection(self): + """ + Introspection of table names containing special characters, + unsuitable for Python identifiers + """ + out = StringIO() + call_command('inspectdb', + table_name_filter=lambda tn: tn.startswith('inspectdb_'), + stdout=out) + output = out.getvalue() + self.assertIn("class InspectdbSpecialTableName(models.Model):", output) + def test_managed_models(self): """Test that by default the command generates models with `Meta.managed = False` (#14305)""" out = StringIO() |
