From 48dd5f13a351048d40803cbb95e60ed775d980cd Mon Sep 17 00:00:00 2001 From: Karen Tracey Date: Wed, 14 Apr 2010 19:10:27 +0000 Subject: Fixed #13335: Adjusted the r12950 fix to properly handle import errors resulting from nested calls to load_app. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12972 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- .../regressiontests/admin_scripts/complex_app/__init__.py | 0 .../admin_scripts/complex_app/admin/__init__.py | 0 .../regressiontests/admin_scripts/complex_app/admin/foo.py | 3 +++ .../admin_scripts/complex_app/models/__init__.py | 4 ++++ .../admin_scripts/complex_app/models/bar.py | 7 +++++++ .../admin_scripts/complex_app/models/foo.py | 6 ++++++ tests/regressiontests/admin_scripts/simple_app/__init__.py | 0 tests/regressiontests/admin_scripts/simple_app/models.py | 1 + tests/regressiontests/admin_scripts/tests.py | 14 ++++++++++++-- 9 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 tests/regressiontests/admin_scripts/complex_app/__init__.py create mode 100644 tests/regressiontests/admin_scripts/complex_app/admin/__init__.py create mode 100644 tests/regressiontests/admin_scripts/complex_app/admin/foo.py create mode 100644 tests/regressiontests/admin_scripts/complex_app/models/__init__.py create mode 100644 tests/regressiontests/admin_scripts/complex_app/models/bar.py create mode 100644 tests/regressiontests/admin_scripts/complex_app/models/foo.py create mode 100644 tests/regressiontests/admin_scripts/simple_app/__init__.py create mode 100644 tests/regressiontests/admin_scripts/simple_app/models.py (limited to 'tests/regressiontests/admin_scripts') diff --git a/tests/regressiontests/admin_scripts/complex_app/__init__.py b/tests/regressiontests/admin_scripts/complex_app/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/regressiontests/admin_scripts/complex_app/admin/__init__.py b/tests/regressiontests/admin_scripts/complex_app/admin/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/regressiontests/admin_scripts/complex_app/admin/foo.py b/tests/regressiontests/admin_scripts/complex_app/admin/foo.py new file mode 100644 index 0000000000..1b933d028d --- /dev/null +++ b/tests/regressiontests/admin_scripts/complex_app/admin/foo.py @@ -0,0 +1,3 @@ +from django.contrib import admin +from admin_scripts.complex_app.models.foo import Foo +admin.site.register(Foo) diff --git a/tests/regressiontests/admin_scripts/complex_app/models/__init__.py b/tests/regressiontests/admin_scripts/complex_app/models/__init__.py new file mode 100644 index 0000000000..a4d6d9539a --- /dev/null +++ b/tests/regressiontests/admin_scripts/complex_app/models/__init__.py @@ -0,0 +1,4 @@ +from admin_scripts.complex_app.models.bar import Bar +from admin_scripts.complex_app.models.foo import Foo + +__all__ = ['Foo', 'Bar'] diff --git a/tests/regressiontests/admin_scripts/complex_app/models/bar.py b/tests/regressiontests/admin_scripts/complex_app/models/bar.py new file mode 100644 index 0000000000..1da16f8f65 --- /dev/null +++ b/tests/regressiontests/admin_scripts/complex_app/models/bar.py @@ -0,0 +1,7 @@ +from django.db import models + +from ..admin import foo +class Bar(models.Model): + name = models.CharField(max_length=5) + class Meta: + app_label = 'complex_app' diff --git a/tests/regressiontests/admin_scripts/complex_app/models/foo.py b/tests/regressiontests/admin_scripts/complex_app/models/foo.py new file mode 100644 index 0000000000..70c285e392 --- /dev/null +++ b/tests/regressiontests/admin_scripts/complex_app/models/foo.py @@ -0,0 +1,6 @@ +from django.db import models + +class Foo(models.Model): + name = models.CharField(max_length=5) + class Meta: + app_label = 'complex_app' diff --git a/tests/regressiontests/admin_scripts/simple_app/__init__.py b/tests/regressiontests/admin_scripts/simple_app/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/regressiontests/admin_scripts/simple_app/models.py b/tests/regressiontests/admin_scripts/simple_app/models.py new file mode 100644 index 0000000000..65b30ed38a --- /dev/null +++ b/tests/regressiontests/admin_scripts/simple_app/models.py @@ -0,0 +1 @@ +from admin_scripts.complex_app.models.bar import Bar diff --git a/tests/regressiontests/admin_scripts/tests.py b/tests/regressiontests/admin_scripts/tests.py index 62a1b49637..77ed8d25cc 100644 --- a/tests/regressiontests/admin_scripts/tests.py +++ b/tests/regressiontests/admin_scripts/tests.py @@ -957,7 +957,7 @@ class ManageMultipleSettings(AdminScriptTestCase): self.assertOutput(err, "Unknown command: 'noargs_command'") -class ManageValidateImportErrorsReported(AdminScriptTestCase): +class ManageValidate(AdminScriptTestCase): def tearDown(self): self.remove_settings('settings.py') @@ -976,7 +976,17 @@ class ManageValidateImportErrorsReported(AdminScriptTestCase): out, err = self.run_manage(args) self.assertNoOutput(out) self.assertOutput(err, 'ImportError') - + + def test_complex_app(self): + "manage.py validate does not raise an ImportError validating a complex app with nested calls to load_app" + self.write_settings('settings.py', + apps=['admin_scripts.complex_app', 'admin_scripts.simple_app'], + sdict={'DEBUG': True}) + args = ['validate'] + out, err = self.run_manage(args) + self.assertNoOutput(err) + self.assertOutput(out, '0 errors found') + ########################################################################## # COMMAND PROCESSING TESTS -- cgit v1.3