Loading django/apps/cache.py +13 −19 Original line number Diff line number Diff line Loading @@ -39,11 +39,8 @@ def _initialize(): [shared] state of the app cache. """ return dict( # Keys of app_store are the model modules for each application. app_store=ModelDict(), # Mapping of installed app_labels to model modules for that app. app_labels={}, app_labels=OrderedDict(), # Mapping of app_labels to a dictionary of model names to model code. # May contain apps that are not installed. Loading Loading @@ -154,9 +151,9 @@ class BaseAppCache(object): raise self.nesting_level -= 1 if models not in self.app_store: self.app_store[models] = len(self.app_store) self.app_labels[self._label_for(models)] = models label = self._label_for(models) if label not in self.app_labels: self.app_labels[label] = models return models def app_cache_ready(self): Loading @@ -174,17 +171,13 @@ class BaseAppCache(object): """ self._populate() apps = self.app_store.items() # app_labels is an OrderedDict, which ensures that the returned list # is always in the same order (with new apps added at the end). This # avoids unstable ordering on the admin app list page, for example. apps = self.app_labels.items() if self.available_apps is not None: apps = [elt for elt in apps if self._label_for(elt[0]) in self.available_apps] # Ensure the returned list is always in the same order (with new apps # added at the end). This avoids unstable ordering on the admin app # list page, for example. apps = sorted(apps, key=lambda elt: elt[1]) return [elt[0] for elt in apps] apps = [app for app in apps if app[0] in self.available_apps] return [app[1] for app in apps] def _get_app_package(self, app): return '.'.join(app.__name__.split('.')[:-1]) Loading Loading @@ -282,8 +275,9 @@ class BaseAppCache(object): pass self._populate() if app_mod: if app_mod in self.app_store: app_list = [self.app_models.get(self._label_for(app_mod), ModelDict())] app_label = self._label_for(app_mod) if app_label in self.app_labels: app_list = [self.app_models.get(app_label, ModelDict())] else: app_list = [] else: Loading tests/app_loading/tests.py +0 −2 Original line number Diff line number Diff line Loading @@ -20,12 +20,10 @@ class EggLoadingTest(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. self.old_app_models = copy.deepcopy(cache.app_models) self.old_app_store = copy.deepcopy(cache.app_store) def tearDown(self): sys.path = self.old_path cache.app_models = self.old_app_models cache.app_store = self.old_app_store def test_egg1(self): """Models module can be loaded from an app in an egg""" Loading tests/invalid_models/tests.py +0 −2 Original line number Diff line number Diff line Loading @@ -23,11 +23,9 @@ class InvalidModelTestCase(unittest.TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. self.old_app_models = copy.deepcopy(cache.app_models) self.old_app_store = copy.deepcopy(cache.app_store) def tearDown(self): cache.app_models = self.old_app_models cache.app_store = self.old_app_store cache._get_models_cache = {} sys.stdout = self.old_stdout Loading tests/managers_regress/tests.py +0 −6 Original line number Diff line number Diff line Loading @@ -115,7 +115,6 @@ class ManagersRegressionTests(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. old_app_models = copy.deepcopy(cache.app_models) old_app_store = copy.deepcopy(cache.app_store) class SwappableModel(models.Model): class Meta: Loading @@ -131,7 +130,6 @@ class ManagersRegressionTests(TestCase): finally: cache.app_models = old_app_models cache.app_store = old_app_store @override_settings(TEST_SWAPPABLE_MODEL='managers_regress.Parent') def test_custom_swappable_manager(self): Loading @@ -140,7 +138,6 @@ class ManagersRegressionTests(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. old_app_models = copy.deepcopy(cache.app_models) old_app_store = copy.deepcopy(cache.app_store) class SwappableModel(models.Model): Loading @@ -160,7 +157,6 @@ class ManagersRegressionTests(TestCase): finally: cache.app_models = old_app_models cache.app_store = old_app_store @override_settings(TEST_SWAPPABLE_MODEL='managers_regress.Parent') def test_explicit_swappable_manager(self): Loading @@ -169,7 +165,6 @@ class ManagersRegressionTests(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. old_app_models = copy.deepcopy(cache.app_models) old_app_store = copy.deepcopy(cache.app_store) class SwappableModel(models.Model): Loading @@ -189,7 +184,6 @@ class ManagersRegressionTests(TestCase): finally: cache.app_models = old_app_models cache.app_store = old_app_store def test_regress_3871(self): related = RelatedModel.objects.create() Loading tests/migrations/test_commands.py +0 −2 Original line number Diff line number Diff line Loading @@ -133,11 +133,9 @@ class MakeMigrationsTests(MigrationTestBase): self.migration_dir = os.path.join(self.test_dir, 'migrations_%d' % self.creation_counter) self.migration_pkg = "migrations.migrations_%d" % self.creation_counter self._old_app_models = copy.deepcopy(cache.app_models) self._old_app_store = copy.deepcopy(cache.app_store) def tearDown(self): cache.app_models = self._old_app_models cache.app_store = self._old_app_store cache._get_models_cache = {} os.chdir(self.test_dir) Loading Loading
django/apps/cache.py +13 −19 Original line number Diff line number Diff line Loading @@ -39,11 +39,8 @@ def _initialize(): [shared] state of the app cache. """ return dict( # Keys of app_store are the model modules for each application. app_store=ModelDict(), # Mapping of installed app_labels to model modules for that app. app_labels={}, app_labels=OrderedDict(), # Mapping of app_labels to a dictionary of model names to model code. # May contain apps that are not installed. Loading Loading @@ -154,9 +151,9 @@ class BaseAppCache(object): raise self.nesting_level -= 1 if models not in self.app_store: self.app_store[models] = len(self.app_store) self.app_labels[self._label_for(models)] = models label = self._label_for(models) if label not in self.app_labels: self.app_labels[label] = models return models def app_cache_ready(self): Loading @@ -174,17 +171,13 @@ class BaseAppCache(object): """ self._populate() apps = self.app_store.items() # app_labels is an OrderedDict, which ensures that the returned list # is always in the same order (with new apps added at the end). This # avoids unstable ordering on the admin app list page, for example. apps = self.app_labels.items() if self.available_apps is not None: apps = [elt for elt in apps if self._label_for(elt[0]) in self.available_apps] # Ensure the returned list is always in the same order (with new apps # added at the end). This avoids unstable ordering on the admin app # list page, for example. apps = sorted(apps, key=lambda elt: elt[1]) return [elt[0] for elt in apps] apps = [app for app in apps if app[0] in self.available_apps] return [app[1] for app in apps] def _get_app_package(self, app): return '.'.join(app.__name__.split('.')[:-1]) Loading Loading @@ -282,8 +275,9 @@ class BaseAppCache(object): pass self._populate() if app_mod: if app_mod in self.app_store: app_list = [self.app_models.get(self._label_for(app_mod), ModelDict())] app_label = self._label_for(app_mod) if app_label in self.app_labels: app_list = [self.app_models.get(app_label, ModelDict())] else: app_list = [] else: Loading
tests/app_loading/tests.py +0 −2 Original line number Diff line number Diff line Loading @@ -20,12 +20,10 @@ class EggLoadingTest(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. self.old_app_models = copy.deepcopy(cache.app_models) self.old_app_store = copy.deepcopy(cache.app_store) def tearDown(self): sys.path = self.old_path cache.app_models = self.old_app_models cache.app_store = self.old_app_store def test_egg1(self): """Models module can be loaded from an app in an egg""" Loading
tests/invalid_models/tests.py +0 −2 Original line number Diff line number Diff line Loading @@ -23,11 +23,9 @@ class InvalidModelTestCase(unittest.TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. self.old_app_models = copy.deepcopy(cache.app_models) self.old_app_store = copy.deepcopy(cache.app_store) def tearDown(self): cache.app_models = self.old_app_models cache.app_store = self.old_app_store cache._get_models_cache = {} sys.stdout = self.old_stdout Loading
tests/managers_regress/tests.py +0 −6 Original line number Diff line number Diff line Loading @@ -115,7 +115,6 @@ class ManagersRegressionTests(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. old_app_models = copy.deepcopy(cache.app_models) old_app_store = copy.deepcopy(cache.app_store) class SwappableModel(models.Model): class Meta: Loading @@ -131,7 +130,6 @@ class ManagersRegressionTests(TestCase): finally: cache.app_models = old_app_models cache.app_store = old_app_store @override_settings(TEST_SWAPPABLE_MODEL='managers_regress.Parent') def test_custom_swappable_manager(self): Loading @@ -140,7 +138,6 @@ class ManagersRegressionTests(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. old_app_models = copy.deepcopy(cache.app_models) old_app_store = copy.deepcopy(cache.app_store) class SwappableModel(models.Model): Loading @@ -160,7 +157,6 @@ class ManagersRegressionTests(TestCase): finally: cache.app_models = old_app_models cache.app_store = old_app_store @override_settings(TEST_SWAPPABLE_MODEL='managers_regress.Parent') def test_explicit_swappable_manager(self): Loading @@ -169,7 +165,6 @@ class ManagersRegressionTests(TestCase): # need to be removed in order to prevent bad interactions # with the flush operation in other tests. old_app_models = copy.deepcopy(cache.app_models) old_app_store = copy.deepcopy(cache.app_store) class SwappableModel(models.Model): Loading @@ -189,7 +184,6 @@ class ManagersRegressionTests(TestCase): finally: cache.app_models = old_app_models cache.app_store = old_app_store def test_regress_3871(self): related = RelatedModel.objects.create() Loading
tests/migrations/test_commands.py +0 −2 Original line number Diff line number Diff line Loading @@ -133,11 +133,9 @@ class MakeMigrationsTests(MigrationTestBase): self.migration_dir = os.path.join(self.test_dir, 'migrations_%d' % self.creation_counter) self.migration_pkg = "migrations.migrations_%d" % self.creation_counter self._old_app_models = copy.deepcopy(cache.app_models) self._old_app_store = copy.deepcopy(cache.app_store) def tearDown(self): cache.app_models = self._old_app_models cache.app_store = self._old_app_store cache._get_models_cache = {} os.chdir(self.test_dir) Loading