Kaydet (Commit) 72ea8fc4 authored tarafından Karen Tracey's avatar Karen Tracey

Refs: #12286 -- Add a test to verify that a proxied model's table is created in

a situation where it did not used to be.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@12828 bcc190cf-cafb-0310-a4f2-bffc1f526a37
üst f88c2f16
from app2.models import NiceModel
class ProxyModel(NiceModel):
class Meta:
proxy = True
from django.db import models
class NiceModel(models.Model):
pass
"""
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)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment