123456789101112131415161718192021222324252627282930313233343536 |
- """
- 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 TransactionTestCase
- class ProxyModelInheritanceTests(TransactionTestCase):
- 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)
- global ProxyModel, NiceModel
- from app1.models import ProxyModel
- from app2.models import NiceModel
- def tearDown(self):
- settings.INSTALLED_APPS = self.old_installed_apps
- sys.path = self.old_sys_path
- def test_table_exists(self):
- self.assertEqual(NiceModel.objects.all().count(), 0)
- self.assertEqual(ProxyModel.objects.all().count(), 0)
|