From 324eba99cbfb257de7e2cb377f550a31a84fa673 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Wed, 18 Mar 2009 00:59:40 +0000 Subject: [PATCH] Fixed #10526 -- More fixes when specifying installed apps using "foo.*". This adds a case that was missed in r9924: underscore handling. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10078 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/__init__.py | 4 +++- tests/regressiontests/app_loading/parent/__init__.py | 1 - tests/regressiontests/app_loading/parent/app/__init__.py | 1 - tests/regressiontests/app_loading/parent/app1/__init__.py | 1 - tests/regressiontests/app_loading/parent/app_2/__init__.py | 0 tests/regressiontests/app_loading/tests.py | 2 +- 6 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 tests/regressiontests/app_loading/parent/app_2/__init__.py diff --git a/django/conf/__init__.py b/django/conf/__init__.py index 785302c6fd..c980ee0b28 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -7,6 +7,7 @@ a list of all possible variables. """ import os +import re import time # Needed for Windows from django.conf import global_settings @@ -91,8 +92,9 @@ class Settings(object): appdir = os.path.dirname(__import__(app[:-2], {}, {}, ['']).__file__) app_subdirs = os.listdir(appdir) app_subdirs.sort() + name_pattern = re.compile(r'[a-zA-Z]\w*') for d in app_subdirs: - if d.isalnum() and d[0].isalpha() and os.path.isdir(os.path.join(appdir, d)): + if name_pattern.match(d) and os.path.isdir(os.path.join(appdir, d)): new_installed_apps.append('%s.%s' % (app[:-2], d)) else: new_installed_apps.append(app) diff --git a/tests/regressiontests/app_loading/parent/__init__.py b/tests/regressiontests/app_loading/parent/__init__.py index 51c842b5ba..e69de29bb2 100644 --- a/tests/regressiontests/app_loading/parent/__init__.py +++ b/tests/regressiontests/app_loading/parent/__init__.py @@ -1 +0,0 @@ -# not empty to make SVN happy diff --git a/tests/regressiontests/app_loading/parent/app/__init__.py b/tests/regressiontests/app_loading/parent/app/__init__.py index 51c842b5ba..e69de29bb2 100644 --- a/tests/regressiontests/app_loading/parent/app/__init__.py +++ b/tests/regressiontests/app_loading/parent/app/__init__.py @@ -1 +0,0 @@ -# not empty to make SVN happy diff --git a/tests/regressiontests/app_loading/parent/app1/__init__.py b/tests/regressiontests/app_loading/parent/app1/__init__.py index 51c842b5ba..e69de29bb2 100644 --- a/tests/regressiontests/app_loading/parent/app1/__init__.py +++ b/tests/regressiontests/app_loading/parent/app1/__init__.py @@ -1 +0,0 @@ -# not empty to make SVN happy diff --git a/tests/regressiontests/app_loading/parent/app_2/__init__.py b/tests/regressiontests/app_loading/parent/app_2/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/regressiontests/app_loading/tests.py b/tests/regressiontests/app_loading/tests.py index 444de10d79..bc958c0d88 100644 --- a/tests/regressiontests/app_loading/tests.py +++ b/tests/regressiontests/app_loading/tests.py @@ -14,7 +14,7 @@ Test the globbing of INSTALLED_APPS. >>> settings = Settings('test_settings') >>> settings.INSTALLED_APPS -['parent.app', 'parent.app1'] +['parent.app', 'parent.app1', 'parent.app_2'] >>> sys.path = old_sys_path