diff options
| author | Tim Graham <timograham@gmail.com> | 2018-01-30 18:28:04 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-01-31 09:37:07 -0500 |
| commit | 834843ca4fdc474eba4457dee3d99fb9c882ca65 (patch) | |
| tree | 1be260bc8a7a0d4b4e3e96fb25d8cd6302ba34bc | |
| parent | 55e16f25e9d2050e95e448f9ab2e4b9fc845a9e5 (diff) | |
[2.0.x] Fixed #29091 -- Fixed makemigrations crash if migrations directory doesn't have __init__.py.
Regression in aadd3aeb2ba3153e35bd805c80c901f289a6f333.
Backport of 0a37ea56d05208e31ed2f29fdffca65b6d92fa2e from master
| -rw-r--r-- | django/db/migrations/questioner.py | 2 | ||||
| -rw-r--r-- | docs/releases/2.0.2.txt | 3 | ||||
| -rw-r--r-- | tests/migrations/test_commands.py | 7 | ||||
| -rw-r--r-- | tests/migrations/test_migrations_no_init/.gitkeep | 0 |
4 files changed, 11 insertions, 1 deletions
diff --git a/django/db/migrations/questioner.py b/django/db/migrations/questioner.py index 7229ca2dba..9b5b9f3510 100644 --- a/django/db/migrations/questioner.py +++ b/django/db/migrations/questioner.py @@ -48,7 +48,7 @@ class MigrationQuestioner: elif hasattr(migrations_module, "__path__"): if len(migrations_module.__path__) > 1: return False - filenames = os.listdir(migrations_module.__path__[0]) + filenames = os.listdir(list(migrations_module.__path__)[0]) return not any(x.endswith(".py") for x in filenames if x != "__init__.py") def ask_not_null_addition(self, field_name, model_name): diff --git a/docs/releases/2.0.2.txt b/docs/releases/2.0.2.txt index 000236af2c..c6633491d2 100644 --- a/docs/releases/2.0.2.txt +++ b/docs/releases/2.0.2.txt @@ -24,3 +24,6 @@ Bugfixes * Fixed a regression where ``contrib.auth.authenticate()`` crashes if an authentication backend doesn't accept ``request`` and a later one does (:ticket:`29071`). + +* Fixed a regression where ``makemigrations`` crashes if a migrations directory + doesn't have an ``__init__.py`` file (:ticket:`29091`). diff --git a/tests/migrations/test_commands.py b/tests/migrations/test_commands.py index 8caa0b5deb..8a77624e34 100644 --- a/tests/migrations/test_commands.py +++ b/tests/migrations/test_commands.py @@ -853,6 +853,13 @@ class MakeMigrationsTests(MigrationTestBase): call_command("makemigrations", stdout=out) self.assertIn("0001_initial.py", out.getvalue()) + def test_makemigrations_no_init(self): + """Migration directories without an __init__.py file are allowed.""" + out = io.StringIO() + with self.temporary_migration_module(module='migrations.test_migrations_no_init'): + call_command('makemigrations', stdout=out) + self.assertIn('0001_initial.py', out.getvalue()) + def test_makemigrations_migrations_announce(self): """ makemigrations announces the migration at the default verbosity level. diff --git a/tests/migrations/test_migrations_no_init/.gitkeep b/tests/migrations/test_migrations_no_init/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/migrations/test_migrations_no_init/.gitkeep |
