From fffdf5714eed5a24e86f50f4526754cace186b25 Mon Sep 17 00:00:00 2001 From: David-Wobrock Date: Thu, 18 Jan 2018 23:32:22 +0100 Subject: [PATCH] Fix that linter actually ignores deleted files and add a specific test for this --- django_migration_linter/migration_linter.py | 7 +- tests/fixtures.py | 5 +- tests/functional/test_cmd_line_call.py | 6 +- .../test_deleted_migration_project/.gitignore | 3 + .../git/COMMIT_EDITMSG | 1 + .../test_deleted_migration_project/git/HEAD | 1 + .../git/ORIG_HEAD | 1 + .../test_deleted_migration_project/git/config | 5 + .../git/description | 1 + .../test_deleted_migration_project/git/index | Bin 0 -> 1581 bytes .../git/info/exclude | 6 + .../git/logs/HEAD | 3 + .../git/logs/refs/heads/master | 3 + .../03/95cbee60f2ea1b97f42ebdd43991c8f5d8d76e | 2 + .../09/d00ce23e0b42f2c18895ee5fa577f57f14b2ac | 3 + .../10/7654971c8d8cd4a209b0363d4604fc9ee7d494 | Bin 0 -> 136 bytes .../15/4ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba | 1 + .../2b/df33777b398bff4fca0e0aad47e9a7c57a2f96 | 2 + .../3a/629de3fbf102d771b2a711bfe2f1ab3b830d14 | Bin 0 -> 462 bytes .../3c/dde4d6a3d85cb65c15446791e93c78ecac3ed5 | Bin 0 -> 173 bytes .../43/52f2dfe637a766c7fe558cc85b961860efd50c | Bin 0 -> 127 bytes .../45/3c549087e331a41ecbed2a81c9b8e92e8693e9 | Bin 0 -> 240 bytes .../49/ca6418f20f7dac5f12b1c1d66e99844d44fd12 | Bin 0 -> 126 bytes .../4b/825dc642cb6eb9a060e54bf8d69288fbee4904 | Bin 0 -> 15 bytes .../4c/e3b40413b7f8938d91828c437f33f66d57fcc9 | 1 + .../61/d7983b41623ed85d46c0212c66db9507948532 | 3 + .../63/973d01988ba594743a8046c9c88c2aa527d307 | Bin 0 -> 42 bytes .../73/47b0f2a9845fa268ad4a19967c706e5d7be38b | Bin 0 -> 296 bytes .../73/5de5db8bc5e1ed29b3cb7ece62b5e7c8db06ee | Bin 0 -> 391 bytes .../7c/e503c2dd97ba78597f6ff6e4393132753573f6 | Bin 0 -> 72 bytes .../86/deb0cf782231006446fd6194592c2243e74ffe | 1 + .../8c/38f3f3dad51e4585f3984282c2a4bec5349c1e | Bin 0 -> 77 bytes .../8e/2c3931324179d354f7f87a25e642778ed734f9 | Bin 0 -> 256 bytes .../91/ea44a218fbd2f408430959283f0419c921093e | Bin 0 -> 77 bytes .../92/8f9938db104a389b465923b8ea1fcce7b5c678 | Bin 0 -> 124 bytes .../94/bfbb751ce085f6afb8c5cca660727997cd4d83 | Bin 0 -> 1251 bytes .../af/646cefb7f45abb2612374156d130b37a875510 | Bin 0 -> 137 bytes .../b3/0169e7d9fe1fca0cb34f216bc89fd529814eaf | 3 + .../be/2fae887ee7ecd2d1e6371af1a865c17414bde9 | 1 + .../e0/00041da0b7dc84cb17be523882c118641b72b5 | 2 + .../e4/9014e99d282c96e97490f64f13dba56637acc3 | Bin 0 -> 240 bytes .../e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 | Bin 0 -> 15 bytes .../f2/5c8d6c97ee9f2aa3ebc1884e9d374e2a93f8e7 | Bin 0 -> 173 bytes .../f7/9f238852ec7cd7b9a3cc7f6b9b5324d380ae8b | Bin 0 -> 111 bytes .../fc/04070e8336f17e3b2402586653623e6bb51f67 | Bin 0 -> 88 bytes .../git/refs/heads/master | 1 + .../test_deleted_migration_project/manage.py | 22 ++++ .../test_app/__init__.py | 0 .../test_app/admin.py | 3 + .../test_app/apps.py | 5 + .../test_app/migrations/0001_initial.py | 21 +++ .../migrations/0003_new_nullable_field.py | 18 +++ .../test_app/migrations/__init__.py | 0 .../test_app/models.py | 6 + .../test_app/tests.py | 3 + .../test_app/views.py | 3 + .../__init__.py | 0 .../settings.py | 120 ++++++++++++++++++ .../test_deleted_migration_project/urls.py | 21 +++ .../test_deleted_migration_project/wsgi.py | 16 +++ 60 files changed, 293 insertions(+), 7 deletions(-) create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/.gitignore create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/COMMIT_EDITMSG create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/HEAD create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/ORIG_HEAD create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/config create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/description create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/index create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/info/exclude create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/logs/HEAD create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/logs/refs/heads/master create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/03/95cbee60f2ea1b97f42ebdd43991c8f5d8d76e create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/09/d00ce23e0b42f2c18895ee5fa577f57f14b2ac create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/10/7654971c8d8cd4a209b0363d4604fc9ee7d494 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/15/4ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/2b/df33777b398bff4fca0e0aad47e9a7c57a2f96 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/3a/629de3fbf102d771b2a711bfe2f1ab3b830d14 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/3c/dde4d6a3d85cb65c15446791e93c78ecac3ed5 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/43/52f2dfe637a766c7fe558cc85b961860efd50c create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/45/3c549087e331a41ecbed2a81c9b8e92e8693e9 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/49/ca6418f20f7dac5f12b1c1d66e99844d44fd12 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/4c/e3b40413b7f8938d91828c437f33f66d57fcc9 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/61/d7983b41623ed85d46c0212c66db9507948532 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/63/973d01988ba594743a8046c9c88c2aa527d307 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/73/47b0f2a9845fa268ad4a19967c706e5d7be38b create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/73/5de5db8bc5e1ed29b3cb7ece62b5e7c8db06ee create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/7c/e503c2dd97ba78597f6ff6e4393132753573f6 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/86/deb0cf782231006446fd6194592c2243e74ffe create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/8c/38f3f3dad51e4585f3984282c2a4bec5349c1e create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/8e/2c3931324179d354f7f87a25e642778ed734f9 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/91/ea44a218fbd2f408430959283f0419c921093e create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/92/8f9938db104a389b465923b8ea1fcce7b5c678 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/94/bfbb751ce085f6afb8c5cca660727997cd4d83 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/af/646cefb7f45abb2612374156d130b37a875510 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/b3/0169e7d9fe1fca0cb34f216bc89fd529814eaf create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/be/2fae887ee7ecd2d1e6371af1a865c17414bde9 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/e0/00041da0b7dc84cb17be523882c118641b72b5 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/e4/9014e99d282c96e97490f64f13dba56637acc3 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/f2/5c8d6c97ee9f2aa3ebc1884e9d374e2a93f8e7 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/f7/9f238852ec7cd7b9a3cc7f6b9b5324d380ae8b create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/objects/fc/04070e8336f17e3b2402586653623e6bb51f67 create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/git/refs/heads/master create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/manage.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/__init__.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/admin.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/apps.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0001_initial.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0003_new_nullable_field.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/__init__.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/models.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/tests.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_app/views.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/__init__.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/settings.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/urls.py create mode 100644 tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/wsgi.py diff --git a/django_migration_linter/migration_linter.py b/django_migration_linter/migration_linter.py index fcf8e2d..7ecbf98 100644 --- a/django_migration_linter/migration_linter.py +++ b/django_migration_linter/migration_linter.py @@ -125,16 +125,16 @@ class MigrationLinter(object): Even if calling a shell is slow and ugly, for now, it allows to seperate the instances correctly. """ - git_diff_command = ( + sqlmigrate_command = ( 'cd {0} && ' '{1} manage.py sqlmigrate {2} {3} ' '--database {4}').format( self.django_path, self.python_exe, app_name, migration_name, self.database) - log.info('Executing {0}'.format(git_diff_command)) + log.info('Executing {0}'.format(sqlmigrate_command)) sqlmigrate_process = Popen( - git_diff_command, shell=True, stdout=PIPE, stderr=PIPE) + sqlmigrate_command, shell=True, stdout=PIPE, stderr=PIPE) sql_statements = [] for line in map( @@ -164,6 +164,7 @@ class MigrationLinter(object): '^A.*\/{0}\/.*\.py'.format(self.MIGRATION_FOLDER_NAME), line) and \ '__init__' not in line: + line = line.split()[-1] # Remove the status letter app_name, migration_name = self._split_migration_path(line) migrations.append((app_name, migration_name)) diff_process.wait() diff --git a/tests/fixtures.py b/tests/fixtures.py index 5dd202b..5d97a82 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -38,6 +38,8 @@ MULTI_COMMIT_PROJECT = os.path.join( _FIXTURES_FOLDER, 'test_project_multi_commit/') CORRECT_PROJECT = os.path.join( _FIXTURES_FOLDER, 'test_correct_project/') +DELETED_MIGRATION_PROJECT = os.path.join( + _FIXTURES_FOLDER, 'test_deleted_migration_project/') NOT_DJANGO_GIT_PROJECT = os.path.join( _FIXTURES_FOLDER, 'test_git_project/') @@ -46,7 +48,8 @@ NOT_GIT_DJANGO_PROJECT = os.path.join( ALL_GIT_PROJECTS = ( NOT_DJANGO_GIT_PROJECT, - MULTI_COMMIT_PROJECT + MULTI_COMMIT_PROJECT, + DELETED_MIGRATION_PROJECT ) diff --git a/tests/functional/test_cmd_line_call.py b/tests/functional/test_cmd_line_call.py index bc34b15..ac62575 100644 --- a/tests/functional/test_cmd_line_call.py +++ b/tests/functional/test_cmd_line_call.py @@ -116,10 +116,10 @@ class CallLinterFromCommandLineTest(unittest.TestCase): self.assertTrue(lines[2].endswith('IGNORE')) def test_call_linter_cmd_line_git_id(self): - cmd = '{0} {1} d7125d5f4f0cc9623f670a66c54f131acc50032d'.format( + cmd = '{0} {1} 154ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba'.format( self.linter_exec, - fixtures.MULTI_COMMIT_PROJECT) - fixtures.prepare_git_project(fixtures.MULTI_COMMIT_PROJECT) + fixtures.DELETED_MIGRATION_PROJECT) + fixtures.prepare_git_project(fixtures.DELETED_MIGRATION_PROJECT) process = Popen( cmd, shell=True, stdout=PIPE, stderr=PIPE) diff --git a/tests/test_project_fixtures/test_deleted_migration_project/.gitignore b/tests/test_project_fixtures/test_deleted_migration_project/.gitignore new file mode 100644 index 0000000..63973d0 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/.gitignore @@ -0,0 +1,3 @@ +*.pyc +__pycache__/ +*sqlite3 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/COMMIT_EDITMSG b/tests/test_project_fixtures/test_deleted_migration_project/git/COMMIT_EDITMSG new file mode 100644 index 0000000..974dd96 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/COMMIT_EDITMSG @@ -0,0 +1 @@ +Delete file and insert new diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/HEAD b/tests/test_project_fixtures/test_deleted_migration_project/git/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/ORIG_HEAD b/tests/test_project_fixtures/test_deleted_migration_project/git/ORIG_HEAD new file mode 100644 index 0000000..70acf6c --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/ORIG_HEAD @@ -0,0 +1 @@ +154ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/config b/tests/test_project_fixtures/test_deleted_migration_project/git/config new file mode 100644 index 0000000..eeb8dd7 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/config @@ -0,0 +1,5 @@ +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/description b/tests/test_project_fixtures/test_deleted_migration_project/git/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/index b/tests/test_project_fixtures/test_deleted_migration_project/git/index new file mode 100644 index 0000000000000000000000000000000000000000..b3e362d0e1ceeeda1718673cb37a52dd4f808748 GIT binary patch literal 1581 zcmZ?q402{*U|<4b{;0se8S2)B4`4JxGTzcu5C7J1Y`9-NPg;9yJTli)OT!7I)aiDqaGf~ZBwy{c@`}p@qrt5{9 zmJ9BG^l`OyGp`5(XKrF%VtT4xK_vsoJ^J4ZcED(`If9+?sOB&*Je&Jy_NI&1oV~j> z*Of=zIP|0^cp`&HNosLPd}2X?etdjpUS>&rJjh5efSCuQA?9{$L^IdE$KvznTUX^= zTR+cmYC5!J-%*n}atwlSa}!f?GxPAcQwq(zs6Q<1e9dMb>#S9nBGQ7B?6SAYr!xp3 z%qu7;2D>pTQEq}|!fFc`4fQuLE|BAc@u~KG!cSz+KRdBoB`CHJ!tmSY-Y@Se)FIF zDW1*#irFXTU)5~%ThE|}!ye=KywvjeywaSU#H5_m__WN_oD`^)!1U0=|9vM1DBKO6 zJ_OnWOc#Qk>ZtbNh);QJ_Mt{C&>spsYn`9KXsG$pXy%`t)IZbWwt$z#Y_~||9k1li zJl}e(frSd&Gk2R0WKNy5AVpJ|6EW`*)YhJZSy4 ze#g->%Mywzr=Rt0W*}r=acW6PW?niG;ctp+A2UaB?9tWsYhO-)T85zAwn4>7Yc4bkSCV_LLW= zXF~HqNRX>5(Cn!UhNcQeTsC)~Tw8o2W?PJ?OZvo@HWhEy*jq-(w#hHy@l?!UtYE;kJ|*Y<_AgPp)r8C)!!8l3@L7Z6Q@M#C^g{HN~e2+4&61Dlh%T)^i^cfw* literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/info/exclude b/tests/test_project_fixtures/test_deleted_migration_project/git/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/logs/HEAD b/tests/test_project_fixtures/test_deleted_migration_project/git/logs/HEAD new file mode 100644 index 0000000..236e554 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/logs/HEAD @@ -0,0 +1,3 @@ +0000000000000000000000000000000000000000 0395cbee60f2ea1b97f42ebdd43991c8f5d8d76e David-Wobrock 1516314144 +0100 commit (initial): Project init +0395cbee60f2ea1b97f42ebdd43991c8f5d8d76e 154ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba David-Wobrock 1516314322 +0100 commit: Add backward incompatible migration +154ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba be2fae887ee7ecd2d1e6371af1a865c17414bde9 David-Wobrock 1516314457 +0100 commit: Delete file and insert new diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/logs/refs/heads/master b/tests/test_project_fixtures/test_deleted_migration_project/git/logs/refs/heads/master new file mode 100644 index 0000000..236e554 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/logs/refs/heads/master @@ -0,0 +1,3 @@ +0000000000000000000000000000000000000000 0395cbee60f2ea1b97f42ebdd43991c8f5d8d76e David-Wobrock 1516314144 +0100 commit (initial): Project init +0395cbee60f2ea1b97f42ebdd43991c8f5d8d76e 154ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba David-Wobrock 1516314322 +0100 commit: Add backward incompatible migration +154ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba be2fae887ee7ecd2d1e6371af1a865c17414bde9 David-Wobrock 1516314457 +0100 commit: Delete file and insert new diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/03/95cbee60f2ea1b97f42ebdd43991c8f5d8d76e b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/03/95cbee60f2ea1b97f42ebdd43991c8f5d8d76e new file mode 100644 index 0000000..0054e0e --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/03/95cbee60f2ea1b97f42ebdd43991c8f5d8d76e @@ -0,0 +1,2 @@ +x¥�; +1@­sŠéÅ%gC"ÀÎ:ŸY�kQ¯ïŠG°|¯x/I­¥z\õÆ �s²dR´}ÐVóHqrÙzãÜ™ÉkRáÙ¯Òà^%oΛ¤vù‹Ãû‡‡K å>$©{Àí ‰`­QkµØeÜù�„:5¹qêP¥«J>ñ \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/09/d00ce23e0b42f2c18895ee5fa577f57f14b2ac b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/09/d00ce23e0b42f2c18895ee5fa577f57f14b2ac new file mode 100644 index 0000000..4d7d160 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/09/d00ce23e0b42f2c18895ee5fa577f57f14b2ac @@ -0,0 +1,3 @@ +x]PËjÃ0ìÙ_±�ƒ�;Ôm øRrÈ­·„m­�ZY2zÒ¯¯dåY„˜™�™UÃee™?Ì }L¡•”‰~Öté«G¢¼£@U¤ÐaóU‹^B‘Eö RÀ2/^Ò"O—%O«¼Œ:% ¤³Æ*$Ø0JeÀ +æÌ‘pfœ×QÒÉ/£ÍY7°Þ…1)ô7à•QËk­a¦’«(»€óU�;L0Ãj|(‹£8¢ (Z†ÚŸ“ð89úí|à…ñ67o +Ýú{_&™&=ï�¨¬âu¼¸C;†œê*„a¸“˜Ñø¼U¶¶Fn½4©Ý‹´S­|錊 µ:’o<ž�ÊmÅ~±Úºßs’T�ÔHB‰Ý&žÏï{øÐ$–s2UºFï„ÁUH÷‚)ãÿüájwr>Dqá£& \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/10/7654971c8d8cd4a209b0363d4604fc9ee7d494 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/10/7654971c8d8cd4a209b0363d4604fc9ee7d494 new file mode 100644 index 0000000000000000000000000000000000000000..0d561f286a2694f6770b34a3aa94279bb1452edf GIT binary patch literal 136 zcmV;30C)d*0V^p=O;s>7He)a}FfcPQQ7|wtFpSU4%Ph%E%+V{TWYE5ETwZP2{onr- zAJn1;;y5hm6$H#+|J)8Sz_NI&1oV~j>*Of=zIP|0^cp?Cn@;MkC3PqX# literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/15/4ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/15/4ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba new file mode 100644 index 0000000..15253fb --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/15/4ecf6119325cc3b1f3f5a4e709bfbd61a4a4ba @@ -0,0 +1 @@ +x¥ŽKJD1Eg5›ü^> ¢àWª*mèÎK¢½}Ÿ¸g÷ÜÁáÐè½-°Á>¬)Õn”8PŽ"¹ZD'…LJ^2»èÅbv5IT7œ²/Ð.oTD‚®VД«·R˜½ËÙPª'ŽA~­Ï1á¿?}Œ2]à™ñtÿÃ×sÇv=Ñè/`6œñÎZxÔFku¼Gè’(Ô3¤Ë'CÛå W+W�ÞÎó˜cW?hþVd \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/2b/df33777b398bff4fca0e0aad47e9a7c57a2f96 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/2b/df33777b398bff4fca0e0aad47e9a7c57a2f96 new file mode 100644 index 0000000..a150ce3 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/2b/df33777b398bff4fca0e0aad47e9a7c57a2f96 @@ -0,0 +1,2 @@ +x]OÁj„0ì9_ñ \QÙ‚,xXºlÙÃÞz+"Ѽ•´1‘D ö뛘ݵÛwafÞ̼F¨¶ÅËÓ3¼¡DMGdÐÌpø¤²S�'i’�’�§Y±I³MV@žïò-!­z`‹,a ð~Pz„žwÖƒ+ibèCa!­ ÆÀùF…«(¹ƒÑްÃ%9P»žÐc ” eËÑXâcVžSƒ+íùñªÑ^uveÂeÓñn$í± öAü€^8 +fJâ…þ ΂ÛUÉ~ÕÑICju»„°Ò•Žaм§z®¿p¾"µ½Šÿ`y¤ÂXÉ7êF¬}‰Ó!ˆ¢Ç.4 ä$D½TZ£OrĵOw‚%ãÿ~µÚ]�+ò ¢�m \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/3a/629de3fbf102d771b2a711bfe2f1ab3b830d14 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/3a/629de3fbf102d771b2a711bfe2f1ab3b830d14 new file mode 100644 index 0000000000000000000000000000000000000000..6c0751607a369ba9225b56a9e97d3c85c8d06064 GIT binary patch literal 462 zcmV;<0Wtn~0ew?VYui8&?ODHKDj(uNks+s02*K1QNoj3E+(S>xNE*qTYIn@;NJRg> zyDP^@=!XtM?7n&P-kVX`aS7K~*B@pd7rl3jQriXD0gj^_*k;-s*$J?J`SPRBGTneu z77Zx{H#d+gWl&qC^3NHBhkX$!v}0R%lA0RqJDKOJuglHdRz0rw`-jclqx!yG{rI-d zKS3_!Mb*@iP_2w^9g1eFj*g$Gl1L)jwm!d1^y0>;Pwdq=Hc&sIZMmq}QDM+xONOk# zNjyDM)eETzRTZ0ns8y#eB{q7l=qT`zjINzy_ews4{eb{W9_WS4;0O)s4jOjg*$}WC z$blpD!7r?>?;U|0P{M0!5p~W$d*25dAE8}0PLNen9#2iU4<p6I z;+X`8d_1s)U78bI6=%e|cw)&ZhAE^o?0>#vl|$|6Z7lP1X}pe4{)PLlwioB5CpQHw zLjoiBkfP9X;Xzw3!8O$o!iW4%DjY(nSau;#8*3fxe(vwLo85AM52tNPLmklRh`WVV z2q|{?3tJdYOJM*Z%S!Zs5~c`YBc;dgE!*w;+G)R{wd6jj{O9(}!>>@FYlqA1H(V$L E*C@2&^8f$< literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/3c/dde4d6a3d85cb65c15446791e93c78ecac3ed5 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/3c/dde4d6a3d85cb65c15446791e93c78ecac3ed5 new file mode 100644 index 0000000000000000000000000000000000000000..eee3f458163ffecedd400fe4f20c0c6097588067 GIT binary patch literal 173 zcmV;e08;;W0V^p=O;s>7GiNX~FfcPQQP4}zEXhpI%P&f0NSIH#5B`u_QA;FTS8CKPxr4grV); bhVvClh72ige-o!f>L@us_x}d~4%bF>AD~SQ literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/43/52f2dfe637a766c7fe558cc85b961860efd50c b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/43/52f2dfe637a766c7fe558cc85b961860efd50c new file mode 100644 index 0000000000000000000000000000000000000000..6140b56e45f56e7098b36bec26120d53339670f7 GIT binary patch literal 127 zcmV-_0D%8^0ZYosPf{>4Fk?t7%Fk6u$x6&i&(}*yQpn6L$S*2U$jwhl%_-*MO3q0v zE>>{VfbjKvLBg6=T%38OIXUrZnW;G`3bs(idY*YDsp+XjZXi(&kOJF~qS91NpyJf> h_`Lj*c;Ym5HDfR|FfcPQQHYPv%*!l^kJl@xWOz3B(d zXRX2%krtd}m%UX!-NXP06mm1uixNvR^Ye-s)~DpW-~J_Px0;Z-W7tK5%~kE80#I{u z^HWlDz$Q)VpJ{Phz{_H`Tcq-iSMq0`Z#`B4RaBB%Tmn{8^OX6}-RZk3BJ14FlR_B%Fk6u$x6&i&(}*yQpn6L$S*2U$jwhl%_-*MO3q0v zE>>{VfbjKvLBg6=T%38OIXUrZnW;G`3bs(idY*YDsp+XjZXi(&kOJF~qS91NE>7jV g)bjYe{E~R$bh#zw6eF|&%}GqkNhQ`Y0K8*M&i)KNqyPW_ literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 new file mode 100644 index 0000000000000000000000000000000000000000..adf64119a33d7621aeeaa505d30adb58afaa5559 GIT binary patch literal 15 Wcmb`Ö4PBŠ�’M»•ͶiA©�ºgì4‡l± kÀ�S˜Œn¸2\ XÃ,úÈ;z#<¯ª“XÅÍŽ1¸ŽÅ É"FèൈyQñ„1õzšx \JÙôŽ\rÚóM]\o !Lù�\áÏý¯Ðk½­Vx(u{Ò#v\ó™õ<‹JøÞÓÅ{m<ö§Løg+Z·ü-ž(á€ó’”Ϻ—ù‚_]3t­ý ¡¢o� \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/63/973d01988ba594743a8046c9c88c2aa527d307 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/63/973d01988ba594743a8046c9c88c2aa527d307 new file mode 100644 index 0000000000000000000000000000000000000000..3f771d5c1e30263214cd2a30914b52def2ef7c86 GIT binary patch literal 42 zcmV+_0M-9^0ZYosPf{?lV9?Sls7&UHj|Y;8$r-8f@%mg^#f3SUC8@?-0MJ1TW5lu) A#Q*>R literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/73/47b0f2a9845fa268ad4a19967c706e5d7be38b b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/73/47b0f2a9845fa268ad4a19967c706e5d7be38b new file mode 100644 index 0000000000000000000000000000000000000000..621f4fc1cb882e93252ee56b37a204041d5c4f7a GIT binary patch literal 296 zcmV+@0oVR`0bP*6PQx$|L^U8Q_FU`an}IOGdHqO3|KuqZ~q*G}>)p z3=g6+>lAkmUe2ra)l^=@%`wX$jG&3MAl*rF(7@{=#>G1KDx!)Z{!*$f(Cjs-{oW#-pB{Y$&vjaJR45ohv^!AsrC(4Ly?}(o|(-6 literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/73/5de5db8bc5e1ed29b3cb7ece62b5e7c8db06ee b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/73/5de5db8bc5e1ed29b3cb7ece62b5e7c8db06ee new file mode 100644 index 0000000000000000000000000000000000000000..66ccc09794ebf5efe30fa53a069a0084dc53b13f GIT binary patch literal 391 zcmV;20eJp+0gX~!OT#b}^*O)dGK8*B6Xt`1f)64N2R?~DiO#f5w~QvYB&i?&-kYq2 zF;MJN8qPiE+;dWOSiy36bvB#LI&Fh;o1lEy^bYr`4)FZ=0Jmscy&aqk8ZBc_I|c89 z>v|aoZv8uS+6Qnr&}1C&5D-4J`t%%D=)j;;plyrJBns#|CA|W#RLOw8T?oA|g=nz$ zyxB{;#ZjNvXoRw2!50e=u-CO05iLmH3wHM<4Uzehtp;01dk5Xby5MlrG$1W#)1wO| zK6IR}2iNeD+>IS3L^O~N-0Pr{dS0+s_5=3-1~NL0#8UtO literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/7c/e503c2dd97ba78597f6ff6e4393132753573f6 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/7c/e503c2dd97ba78597f6ff6e4393132753573f6 new file mode 100644 index 0000000000000000000000000000000000000000..250bef6ac737f97163f7f541ed98f1f4581b0f67 GIT binary patch literal 72 zcmV-O0Jr~m0ZYosPf{>5U`Q*<&s9jtO3X{o*DFaaE>XzLEyyn_Q3wIDofC^wxww=S eoQqNuOHvgo^Gk~qKx&E=GE$3D^|$~d*cUrI-yGBc literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/86/deb0cf782231006446fd6194592c2243e74ffe b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/86/deb0cf782231006446fd6194592c2243e74ffe new file mode 100644 index 0000000..635c9d7 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/86/deb0cf782231006446fd6194592c2243e74ffe @@ -0,0 +1 @@ +x+)JMU04±`040031Qˆ�ÏÌË,‰�×+¨dx6÷ÑìM¯9{wk®+�ºqèIOðD¨²âÔ’’̼ôb�²)ûw—Êo literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/8e/2c3931324179d354f7f87a25e642778ed734f9 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/8e/2c3931324179d354f7f87a25e642778ed734f9 new file mode 100644 index 0000000000000000000000000000000000000000..e6aa0ad0650522bd3089433c0ba0d687ffcfbbfd GIT binary patch literal 256 zcmV+b0ssDZ0bP&5YQr!PM0?g(Ec74;9AlYKLcoVYN$H_qP>PVFwNa2)LQ-1#_l>M3 zX}ibS**CL;bpvd~!`(eRBVkYpH4I;0U@_Y}c(=i!F5BuG=s+1~-FV zY>ghk%-)3rvzg8e<0#fJJB>Cn#tv4+2(On_bu%?rakXO%&ZE&IX{3X}2tB+lVqR1{ zVN6na&uidq+X`vOB%>@})r;%B5S-6%Y$gJln zD&eOjmn5C6m18FSvn^U*{%&3<;e??iX&lwbre6GXEm!~_Fk<*Xc`@vjjd%;czV;1O Gzj@_r)Odpc literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/91/ea44a218fbd2f408430959283f0419c921093e b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/91/ea44a218fbd2f408430959283f0419c921093e new file mode 100644 index 0000000000000000000000000000000000000000..263fc8c87e325bcaa3c19492252655b82f498d2d GIT binary patch literal 77 zcmV-T0J8sh0ZYosPf{>5W=Jc_&s9jtO3X{o*DKD*FDgkcEh$#W%q;*i6^c^xQc{b! jxRe!~i&7IyQWYxmON$iBGE>Wo6*5wbQuVk1gVGqx_PZe6 literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/92/8f9938db104a389b465923b8ea1fcce7b5c678 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/92/8f9938db104a389b465923b8ea1fcce7b5c678 new file mode 100644 index 0000000000000000000000000000000000000000..b6aaa4070d37c8fc9187cd3439f1f5212e4a2886 GIT binary patch literal 124 zcmV-?0E7Q{0ZYosPf{>4Fl9(9%Fk6u$x6&i&(}*yQpn6L$S*2U$jwhl%_-*MO3q0v zE>>{VfbjKvLBg6=T%38OIXUrZnW;G`3bs(idY*YDsp+XjZXi(&kOJF~qS91NpyJf> e_`Lj*c;Ym z>UR9!dsY`Nsd4O1ctFygJ@@Zi#xWa{H?5!F{&0ABsCDK+I%PzFlr)_RGGUxZ5Ymqz z1__a$&?yfjWvQQWHiuA>>S<_N7g9hXL}YwV^r#Tk2%?0hM96^4>ZVR|fx=0pt7WuW z#xKZzg}M^PfzTAyCWRKlQX*#*4WTidpZ_a}Y05#$mFhNd;1)Nya#;5Sn&GE^``3 zBn#wBpm%~spmf!tLt_@|fQk#eZ>Vd=oYD07(sV7qV-L@WVHhV`{Yl=fuSJxnK?27$ z+t=U0SSWGFzOMr4`zI$SnlkA3oQ8`=krfib5@MDmkjhOs8YE9ePGvBTF=Ch*jB%8Q zD)Y$h0+46sVa8UHH6zGkcCS=4!x@AN6@E+!O0wFcq3wMnx8`tQ54sm*0gx5Z5fE~a z_ppUV3(G zZ+AL93)5?u;xojIrS-f*jz{+jj;tBoxwZt2Nh-mRwDOhc9bZ?e}h-xkp?^RSmUSx3wW5on8f5H7IK8h>1I zY!ObT&?a`cF*`%Y@%+)S*LDV1s(_wu_D0TQffeIf{p+6TSsS$eQzW*)?WNiNU=2F@ z#TvpAk}Sr-V2sfuNTa%M8|4V_DsqjVLJGD$7e##jQX;-M!}?I|P@Stv+oCwvp6v`2 zVPiCtCrNW+op={GvKijQ)*!0*L@D5f<3+y z;1~%6;OjGo#?CxFiYk5_r5)2V)fiO3D>JQQD-H5k?xbF~23>n#;aQa&e-bRfuLb#Q z9IjuIdvO<6fqBp#3cIfZAy$k>Y9pY?Th6}!<$}syBdg>!DtQP-92O(*y?<@G?yWQI z_%~+HMjxHwqm?x<`&&M3CWGoVwQzr9tT7V6O{u0wF2SVfjw%Wpd!H5qkC8+p-N?Y`xIat6iW$ZKN_jc^ULTj#0*%MC*v^jfcX54=xn zx>~G?v0UuUf*iM9_l*1&ECV;>G?Qn7He)a}FfcPQQ7|wtFpSU4%Ph%E%+V{TWYE5ETwZP2{onr- zAJ`Ö4PBŠ�’M»•ͶiA©�ºgì4‡l± kÀ�S˜Œn¸2\ XÃ,úÈ;z#<¯ª“XÅÍŽ1¸ŽÅ É"FèൈyQñ„1õzšx \JÙôŽ\rÚóM]\o !Lù�\áÏý¯Ðk½­Vx(u{Ò#v\ó™õ<‹JøÞÓÅ{m<ö§Løg+Z·ü-ž(á€ó’”Ϻ—ù‚_]3t­ý ¢ðo‚ \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/be/2fae887ee7ecd2d1e6371af1a865c17414bde9 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/be/2fae887ee7ecd2d1e6371af1a865c17414bde9 new file mode 100644 index 0000000..5985521 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/be/2fae887ee7ecd2d1e6371af1a865c17414bde9 @@ -0,0 +1 @@ +x¥ŽAn1 EYçÞ£¢1N2Œ„*Ü¡kÇvÚˆ™ JÓrýâ]¾÷¥§/uYJ‡c ]of@¢j^#“ž‚¤ƒ÷qœÐ&’ñdÂB¦ÁݹÙÚa[MrDœèD(a¦ØÛ8L)'�Èž}bÇ?ý«6¸òoÑ·�šZ•œõ‰‡Ç /Ÿ —ù uyߺ ½#ì·Ùíh·$ÜÕfë¹Ì¼*”õÛZ‡Õî7zRY \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/e0/00041da0b7dc84cb17be523882c118641b72b5 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/e0/00041da0b7dc84cb17be523882c118641b72b5 new file mode 100644 index 0000000..0363066 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/e0/00041da0b7dc84cb17be523882c118641b72b5 @@ -0,0 +1,2 @@ +xm�AkÃ0 …wö¯>µÐÅt ƒíJÇÖÚ±câÄJêb[ÁVÛíß/I[èa'!žô¾'•ŽJx|xº“RŠïÍb …Ú6PSgcÌçm¤=V —š ±dÀŸ–&àÂyY;§K‡ hðdïÑÁQG;HA{4Pºm�­4[ +EÑù½uDOÁ†î(tæ6AmN !Šs›ž•2T¥Ììuhèš©"¯0¨i6�ª�˜”ÁÖѯÇÀꔫD¦°¾¥È@Iˆ:’‡³KVuð¬ƒË@ƒœ÷}~UJ†£�²„l°ÖÇ#9{]-Öùf¾Ý.W‹Mþ¹ž}}Ìåäð?ƒMîm‡Ó®íM؆&ɱ7 x�ÿø£±ø°è™ž \ No newline at end of file diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/e4/9014e99d282c96e97490f64f13dba56637acc3 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/e4/9014e99d282c96e97490f64f13dba56637acc3 new file mode 100644 index 0000000000000000000000000000000000000000..2b34cf3674922647d64329da6200fb7cb85269e2 GIT binary patch literal 240 zcmV5HDfR|FfcPQQHYPv%*!l^kJl@xWOz3B(d zXRX2%krtd}m%UX!-NXP06mm1uixNvR^Ye-s1j<6D%k=hKS;V=)%+`(N&%EbXra;Zf z%}+_q0h{C;^y&UH^W|yB|AqFPh@K{q@ct?fR8dK4aS2#W%~R$>cc<^Fh^){5_QcZA qsMNIh8&pkMW@S;s4_7GiNX~FfcPQQP4}zEXhpI%P&f0NSKmlGK#=+|2Z%#FEVXy!e8m{H)aE5{9;W b8_riK88W1}{Y{(_siWll-2Wc{9MwjCr)gMv literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/f7/9f238852ec7cd7b9a3cc7f6b9b5324d380ae8b b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/f7/9f238852ec7cd7b9a3cc7f6b9b5324d380ae8b new file mode 100644 index 0000000000000000000000000000000000000000..2b45f0b3053eba6175d3fb96984611427d7964f5 GIT binary patch literal 111 zcmV-#0FeK90ZYosPf{>6HDpLD%Fk6u$x6&i&(}*yQpn6L$S*2U$jwhl%_-*MO3q0v zE>>{VfbjKvLBg6=T%38OIXUrZnW;G`3bs(idY*YDsp+XjZXi(&kOJF~qS91NpyJf> Rco07^DJPX!O#o1?H|KNVG!Xy* literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/objects/fc/04070e8336f17e3b2402586653623e6bb51f67 b/tests/test_project_fixtures/test_deleted_migration_project/git/objects/fc/04070e8336f17e3b2402586653623e6bb51f67 new file mode 100644 index 0000000000000000000000000000000000000000..a0339be7c120f5ad7bb6d3595d3826bf03fb9027 GIT binary patch literal 88 zcmV-e0H^oeKbS6(DiPJS2($ literal 0 HcmV?d00001 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/git/refs/heads/master b/tests/test_project_fixtures/test_deleted_migration_project/git/refs/heads/master new file mode 100644 index 0000000..953a67e --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/git/refs/heads/master @@ -0,0 +1 @@ +be2fae887ee7ecd2d1e6371af1a865c17414bde9 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/manage.py b/tests/test_project_fixtures/test_deleted_migration_project/manage.py new file mode 100644 index 0000000..3a629de --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +import os +import sys + +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test_deleted_migration_project.settings") + try: + from django.core.management import execute_from_command_line + except ImportError: + # The above import may fail for some other reason. Ensure that the + # issue is really that Django is missing to avoid masking other + # exceptions on Python 2. + try: + import django + except ImportError: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) + raise + execute_from_command_line(sys.argv) diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/__init__.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/admin.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_app/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/apps.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/apps.py new file mode 100644 index 0000000..fc04070 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_app/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class TestAppConfig(AppConfig): + name = 'test_app' diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0001_initial.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0001_initial.py new file mode 100644 index 0000000..2bdf337 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0001_initial.py @@ -0,0 +1,21 @@ +# Generated by Django 2.0.1 on 2018-01-18 22:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='A', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('null_field', models.IntegerField(null=True)), + ], + ), + ] diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0003_new_nullable_field.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0003_new_nullable_field.py new file mode 100644 index 0000000..b30169e --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/0003_new_nullable_field.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.1 on 2018-01-18 22:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('test_app', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='a', + name='new_nullable_field', + field=models.IntegerField(null=True), + ), + ] diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/__init__.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/models.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/models.py new file mode 100644 index 0000000..928f993 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_app/models.py @@ -0,0 +1,6 @@ +from django.db import models + +class A(models.Model): + null_field = models.IntegerField(null=True) + new_not_null_field = models.IntegerField(null=False) + new_nullable_field = models.IntegerField(null=True) diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/tests.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_app/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_app/views.py b/tests/test_project_fixtures/test_deleted_migration_project/test_app/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_app/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/__init__.py b/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/settings.py b/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/settings.py new file mode 100644 index 0000000..94bfbb7 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/settings.py @@ -0,0 +1,120 @@ +""" +Django settings for test_deleted_migration_project project. + +Generated by 'django-admin startproject' using Django 1.11.6. + +For more information on this file, see +https://docs.djangoproject.com/en/1.11/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/1.11/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'gtb+mohs%gf0+#fr89vw7e&#edmv=q8!iv+n&j_soawk$tkj3^' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'test_app' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'test_deleted_migration_project.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'test_deleted_migration_project.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/1.11/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django_fake_database_backends.backends.mysql', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/1.11/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/1.11/howto/static-files/ + +STATIC_URL = '/static/' diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/urls.py b/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/urls.py new file mode 100644 index 0000000..735de5d --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/urls.py @@ -0,0 +1,21 @@ +"""linter_test_project URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/1.11/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.conf.urls import url, include + 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) +""" +from django.conf.urls import url +from django.contrib import admin + +urlpatterns = [ + url(r'^admin/', admin.site.urls), +] diff --git a/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/wsgi.py b/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/wsgi.py new file mode 100644 index 0000000..e000041 --- /dev/null +++ b/tests/test_project_fixtures/test_deleted_migration_project/test_deleted_migration_project/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for linter_test_project project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test_deleted_migration_project.settings") + +application = get_wsgi_application()