Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[1.1.X] Fixed #12286: Ensure proxied model's table is created.
Thanks to telenieko for the report and flyingfred0 for test and fix. Test is r12828 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12829 bcc190cf-cafb-0310-a4f2-bffc1f526a37
- Loading branch information
Showing
8 changed files
with
47 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from app2.models import NiceModel | ||
|
||
class ProxyModel(NiceModel): | ||
class Meta: | ||
proxy = True |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
from django.db import models | ||
|
||
class NiceModel(models.Model): | ||
pass |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
""" | ||
XX. Proxy model inheritance | ||
Proxy model inheritance across apps can result in syncdb not creating the table | ||
for the proxied model (as described in #12286). This test creates two dummy | ||
apps and calls syncdb, then verifies that the table has been created. | ||
""" | ||
|
||
import os | ||
import sys | ||
|
||
from django.conf import settings, Settings | ||
from django.core.management import call_command | ||
from django.db.models.loading import load_app | ||
from django.test import TestCase | ||
|
||
class ProxyModelInheritanceTests(TestCase): | ||
|
||
def setUp(self): | ||
self.old_sys_path = sys.path | ||
sys.path.append(os.path.dirname(os.path.abspath(__file__))) | ||
self.old_installed_apps = settings.INSTALLED_APPS | ||
settings.INSTALLED_APPS = ('app1', 'app2') | ||
map(load_app, settings.INSTALLED_APPS) | ||
call_command('syncdb', verbosity=0) | ||
from app1.models import ProxyModel | ||
from app2.models import NiceModel | ||
global ProxyModel, NiceModel | ||
|
||
def tearDown(self): | ||
settings.INSTALLED_APPS = self.old_installed_apps | ||
sys.path = self.old_sys_path | ||
|
||
def test_table_exists(self): | ||
self.assertEquals(NiceModel.objects.all().count(), 0) | ||
self.assertEquals(ProxyModel.objects.all().count(), 0) |