From f46d7314b50d71a75f51ebae9c5957cb96b11bd9 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 28 Jan 2013 10:17:56 +0100 Subject: Fixed #19677 -- Introspection of recursive foreign keys under SQLite. Thanks Simon Charette. --- tests/regressiontests/introspection/models.py | 1 + tests/regressiontests/introspection/tests.py | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/regressiontests/introspection/models.py b/tests/regressiontests/introspection/models.py index 4de82e47e7..cfa72c9921 100644 --- a/tests/regressiontests/introspection/models.py +++ b/tests/regressiontests/introspection/models.py @@ -23,6 +23,7 @@ class Article(models.Model): headline = models.CharField(max_length=100) pub_date = models.DateField() reporter = models.ForeignKey(Reporter) + response_to = models.ForeignKey('self', null=True) def __str__(self): return self.headline diff --git a/tests/regressiontests/introspection/tests.py b/tests/regressiontests/introspection/tests.py index cd3e1cc8a4..0b4c49077d 100644 --- a/tests/regressiontests/introspection/tests.py +++ b/tests/regressiontests/introspection/tests.py @@ -106,13 +106,17 @@ class IntrospectionTests(TestCase): # should test that the response is correct. if relations: # That's {field_index: (field_index_other_table, other_table)} - self.assertEqual(relations, {3: (0, Reporter._meta.db_table)}) + self.assertEqual(relations, {3: (0, Reporter._meta.db_table), + 4: (0, Article._meta.db_table)}) @skipUnlessDBFeature('can_introspect_foreign_keys') def test_get_key_columns(self): cursor = connection.cursor() key_columns = connection.introspection.get_key_columns(cursor, Article._meta.db_table) - self.assertEqual(key_columns, [('reporter_id', Reporter._meta.db_table, 'id')]) + self.assertEqual( + set(key_columns), + set([('reporter_id', Reporter._meta.db_table, 'id'), + ('response_to_id', Article._meta.db_table, 'id')])) def test_get_primary_key_column(self): cursor = connection.cursor() -- cgit v1.3