Skip to content

Commit

Permalink
Refs #18081 -- Asserted db constraints are created for fk to proxy mo…
Browse files Browse the repository at this point in the history
…dels.
  • Loading branch information
charettes authored and timgraham committed Sep 23, 2015
1 parent de31423 commit 8e8c079
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions tests/schema/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,36 @@ def test_fk(self):
else:
self.fail("No FK constraint for author_id found")

@skipUnlessDBFeature('supports_foreign_keys')
def test_fk_to_proxy(self):
"Tests that creating a FK to a proxy model creates database constraints."
class AuthorProxy(Author):
class Meta:
app_label = 'schema'
apps = new_apps
proxy = True

class AuthorRef(Model):
author = ForeignKey(AuthorProxy, on_delete=CASCADE)

class Meta:
app_label = 'schema'
apps = new_apps

self.local_models = [AuthorProxy, AuthorRef]

# Create the table
with connection.schema_editor() as editor:
editor.create_model(Author)
editor.create_model(AuthorRef)
constraints = self.get_constraints(AuthorRef._meta.db_table)
for details in constraints.values():
if details['columns'] == ['author_id'] and details['foreign_key']:
self.assertEqual(details['foreign_key'], ('schema_author', 'id'))
break
else:
self.fail('No FK constraint for author_id found')

@skipUnlessDBFeature('supports_foreign_keys')
def test_fk_db_constraint(self):
"Tests that the db_constraint parameter is respected"
Expand Down

0 comments on commit 8e8c079

Please sign in to comment.