diff options
author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2013-12-24 12:25:17 +0100 |
---|---|---|
committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2013-12-24 12:25:17 +0100 |
commit | 1716b7ce5a02b2a77188dfea2d41e25dfa58821c (patch) | |
tree | f3422c0d6725f45756a3b9deb32406d319b8a72e /tests/apps | |
parent | e9e522a8e7455900a775678e5d6bc518a289b8d1 (diff) | |
download | django-1716b7ce5a02b2a77188dfea2d41e25dfa58821c.tar.gz |
Renamed AppCache to Apps.
Also renamed app_cache to apps and "app cache" to "app registry".
Deprecated AppCache.app_cache_ready() in favor of Apps.ready().
Diffstat (limited to 'tests/apps')
-rw-r--r-- | tests/apps/__init__.py | 0 | ||||
-rw-r--r-- | tests/apps/models.py | 17 | ||||
-rw-r--r-- | tests/apps/tests.py | 51 |
3 files changed, 68 insertions, 0 deletions
diff --git a/tests/apps/__init__.py b/tests/apps/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/apps/__init__.py diff --git a/tests/apps/models.py b/tests/apps/models.py new file mode 100644 index 0000000000..c3f764a70b --- /dev/null +++ b/tests/apps/models.py @@ -0,0 +1,17 @@ +from django.apps.registry import Apps +from django.db import models + +# We're testing app registry presence on load, so this is handy. + +new_apps = Apps() + + +class TotallyNormal(models.Model): + name = models.CharField(max_length=255) + + +class SoAlternative(models.Model): + name = models.CharField(max_length=255) + + class Meta: + apps = new_apps diff --git a/tests/apps/tests.py b/tests/apps/tests.py new file mode 100644 index 0000000000..c38d16f8bb --- /dev/null +++ b/tests/apps/tests.py @@ -0,0 +1,51 @@ +from __future__ import absolute_import + +from django.apps import apps +from django.apps.registry import Apps +from django.db import models +from django.test import TestCase + +from .models import TotallyNormal, SoAlternative, new_apps + + +class AppsTests(TestCase): + + def test_models_py(self): + """ + Tests that the models in the models.py file were loaded correctly. + """ + self.assertEqual(apps.get_model("apps", "TotallyNormal"), TotallyNormal) + self.assertEqual(apps.get_model("apps", "SoAlternative"), None) + + self.assertEqual(new_apps.get_model("apps", "TotallyNormal"), None) + self.assertEqual(new_apps.get_model("apps", "SoAlternative"), SoAlternative) + + def test_dynamic_load(self): + """ + Makes a new model at runtime and ensures it goes into the right place. + """ + old_models = apps.get_models(apps.get_app_config("apps").models_module) + # Construct a new model in a new app registry + body = {} + new_apps = Apps() + meta_contents = { + 'app_label': "apps", + 'apps': new_apps, + } + meta = type("Meta", tuple(), meta_contents) + body['Meta'] = meta + body['__module__'] = TotallyNormal.__module__ + temp_model = type("SouthPonies", (models.Model,), body) + # Make sure it appeared in the right place! + self.assertEqual( + old_models, + apps.get_models(apps.get_app_config("apps").models_module), + ) + self.assertEqual(new_apps.get_model("apps", "SouthPonies"), temp_model) + + def test_singleton_master(self): + """ + Ensures that only one master registry can exist. + """ + with self.assertRaises(RuntimeError): + Apps(master=True) |