Merge pull request #2824 from valberg/22577

Fixed #22577: Python 3 broke on non-module migrations directory
This commit is contained in:
Andrew Godwin 2014-06-17 09:54:39 -07:00
commit 66a99fa210
3 changed files with 7 additions and 0 deletions

View File

@ -158,6 +158,12 @@ class MigrationWriter(object):
# See if we can import the migrations module directly # See if we can import the migrations module directly
try: try:
migrations_module = import_module(migrations_package_name) migrations_module = import_module(migrations_package_name)
# Python 3 fails when the migrations directory does not have a
# __init__.py file
if not hasattr(migrations_module, '__file__'):
raise ImportError
basedir = os.path.dirname(migrations_module.__file__) basedir = os.path.dirname(migrations_module.__file__)
except ImportError: except ImportError:
app_config = apps.get_app_config(self.migration.app_label) app_config = apps.get_app_config(self.migration.app_label)

View File

@ -215,6 +215,7 @@ class WriterTests(TestCase):
test_apps = [ test_apps = [
'migrations.migrations_test_apps.normal', 'migrations.migrations_test_apps.normal',
'migrations.migrations_test_apps.with_package_model', 'migrations.migrations_test_apps.with_package_model',
'migrations.migrations_test_apps.without_init_file',
] ]
base_dir = os.path.dirname(os.path.dirname(__file__)) base_dir = os.path.dirname(os.path.dirname(__file__))