Adapt tests so that not relying on undefined
behaviour. The app directories can appear in any order, we need to allow that in tests.
This commit is contained in:
1 parent
395379178b
commit
357f0aebf4
3 files changed
+50
-23
No files matched your search
@@ -18,6 +18,7 @@ import os
|
|||||||
import re
|
import re
|
||||||
from subprocess import Popen, PIPE
|
from subprocess import Popen, PIPE
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from . import utils
|
from . import utils
|
||||||
from .sql_analyser import analyse_sql_statements
|
from .sql_analyser import analyse_sql_statements
|
||||||
|
|
||||||
@@ -186,7 +187,7 @@ class MigrationLinter(object):
|
|||||||
def _gather_all_migrations(self):
|
def _gather_all_migrations(self):
|
||||||
migrations = []
|
migrations = []
|
||||||
for root, dirs, files in os.walk(self.django_path):
|
for root, dirs, files in os.walk(self.django_path):
|
||||||
for file_name in files:
|
for file_name in sorted(files):
|
||||||
if os.path.basename(root) == self.MIGRATION_FOLDER_NAME and \
|
if os.path.basename(root) == self.MIGRATION_FOLDER_NAME and \
|
||||||
file_name.endswith('.py') and \
|
file_name.endswith('.py') and \
|
||||||
file_name != '__init__.py':
|
file_name != '__init__.py':
|
||||||
|
|||||||
@@ -35,9 +35,14 @@ class CallLinterFromCommandLineTest(unittest.TestCase):
|
|||||||
self.assertEqual(process.returncode, 0)
|
self.assertEqual(process.returncode, 0)
|
||||||
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
||||||
self.assertEqual(len(lines), 5)
|
self.assertEqual(len(lines), 5)
|
||||||
self.assertTrue(lines[0].endswith('OK'))
|
self.assertEqual(
|
||||||
self.assertTrue(lines[1].endswith('OK'))
|
sorted(lines[:3]),
|
||||||
self.assertTrue(lines[2].endswith('OK'))
|
sorted([
|
||||||
|
"(test_app1, 0001_initial)... OK",
|
||||||
|
"(test_app1, 0002_a_new_null_field)... OK",
|
||||||
|
"(test_app2, 0001_foo)... OK",
|
||||||
|
])
|
||||||
|
)
|
||||||
|
|
||||||
def test_call_linter_cmd_line_errors(self):
|
def test_call_linter_cmd_line_errors(self):
|
||||||
cmd = '{0} {1}'.format(
|
cmd = '{0} {1}'.format(
|
||||||
@@ -50,7 +55,6 @@ class CallLinterFromCommandLineTest(unittest.TestCase):
|
|||||||
self.assertNotEqual(process.returncode, 0)
|
self.assertNotEqual(process.returncode, 0)
|
||||||
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
||||||
self.assertEqual(len(lines), 5)
|
self.assertEqual(len(lines), 5)
|
||||||
print(lines)
|
|
||||||
self.assertTrue(lines[0].endswith('OK'))
|
self.assertTrue(lines[0].endswith('OK'))
|
||||||
self.assertTrue(lines[1].endswith('ERR'))
|
self.assertTrue(lines[1].endswith('ERR'))
|
||||||
self.assertTrue('RENAMING tables' in lines[2])
|
self.assertTrue('RENAMING tables' in lines[2])
|
||||||
@@ -66,9 +70,14 @@ class CallLinterFromCommandLineTest(unittest.TestCase):
|
|||||||
self.assertEqual(process.returncode, 0)
|
self.assertEqual(process.returncode, 0)
|
||||||
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
||||||
self.assertEqual(len(lines), 5)
|
self.assertEqual(len(lines), 5)
|
||||||
self.assertTrue(lines[0].endswith('OK'))
|
self.assertEqual(
|
||||||
self.assertTrue(lines[1].endswith('OK'))
|
sorted(lines[:3]),
|
||||||
self.assertTrue(lines[2].endswith('IGNORE'))
|
sorted([
|
||||||
|
"(test_app1, 0001_initial)... OK",
|
||||||
|
"(test_app1, 0002_a_new_null_field)... OK",
|
||||||
|
"(test_app2, 0001_foo)... IGNORE",
|
||||||
|
])
|
||||||
|
)
|
||||||
|
|
||||||
def test_call_linter_cmd_line_include_apps(self):
|
def test_call_linter_cmd_line_include_apps(self):
|
||||||
cmd = '{0} {1} --include-apps test_app2'.format(
|
cmd = '{0} {1} --include-apps test_app2'.format(
|
||||||
@@ -81,9 +90,14 @@ class CallLinterFromCommandLineTest(unittest.TestCase):
|
|||||||
self.assertEqual(process.returncode, 0)
|
self.assertEqual(process.returncode, 0)
|
||||||
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
||||||
self.assertEqual(len(lines), 5)
|
self.assertEqual(len(lines), 5)
|
||||||
self.assertTrue(lines[0].endswith('IGNORE'))
|
self.assertEqual(
|
||||||
self.assertTrue(lines[1].endswith('IGNORE'))
|
sorted(lines[:3]),
|
||||||
self.assertTrue(lines[2].endswith('OK'))
|
sorted([
|
||||||
|
"(test_app1, 0001_initial)... IGNORE",
|
||||||
|
"(test_app1, 0002_a_new_null_field)... IGNORE",
|
||||||
|
"(test_app2, 0001_foo)... OK",
|
||||||
|
])
|
||||||
|
)
|
||||||
|
|
||||||
def test_call_linter_cmd_line_ignore_name(self):
|
def test_call_linter_cmd_line_ignore_name(self):
|
||||||
cmd = '{0} {1} --ignore-name 0001_initial'.format(
|
cmd = '{0} {1} --ignore-name 0001_initial'.format(
|
||||||
@@ -96,9 +110,14 @@ class CallLinterFromCommandLineTest(unittest.TestCase):
|
|||||||
self.assertEqual(process.returncode, 0)
|
self.assertEqual(process.returncode, 0)
|
||||||
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
||||||
self.assertEqual(len(lines), 5)
|
self.assertEqual(len(lines), 5)
|
||||||
self.assertTrue(lines[0].endswith('IGNORE'))
|
self.assertEqual(
|
||||||
self.assertTrue(lines[1].endswith('OK'))
|
sorted(lines[:3]),
|
||||||
self.assertTrue(lines[2].endswith('OK'))
|
sorted([
|
||||||
|
"(test_app1, 0001_initial)... IGNORE",
|
||||||
|
"(test_app1, 0002_a_new_null_field)... OK",
|
||||||
|
"(test_app2, 0001_foo)... OK",
|
||||||
|
])
|
||||||
|
)
|
||||||
|
|
||||||
def test_call_linter_cmd_line_ignore_name_contains(self):
|
def test_call_linter_cmd_line_ignore_name_contains(self):
|
||||||
cmd = '{0} {1} --ignore-name-contains 0001'.format(
|
cmd = '{0} {1} --ignore-name-contains 0001'.format(
|
||||||
@@ -111,9 +130,14 @@ class CallLinterFromCommandLineTest(unittest.TestCase):
|
|||||||
self.assertEqual(process.returncode, 0)
|
self.assertEqual(process.returncode, 0)
|
||||||
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
lines = list(map(utils.clean_bytes_to_str, process.stdout.readlines()))
|
||||||
self.assertEqual(len(lines), 5)
|
self.assertEqual(len(lines), 5)
|
||||||
self.assertTrue(lines[0].endswith('IGNORE'))
|
self.assertEqual(
|
||||||
self.assertTrue(lines[1].endswith('OK'))
|
sorted(lines[:3]),
|
||||||
self.assertTrue(lines[2].endswith('IGNORE'))
|
sorted([
|
||||||
|
"(test_app1, 0001_initial)... IGNORE",
|
||||||
|
"(test_app1, 0002_a_new_null_field)... OK",
|
||||||
|
"(test_app2, 0001_foo)... IGNORE",
|
||||||
|
])
|
||||||
|
)
|
||||||
|
|
||||||
def test_call_linter_cmd_line_git_id(self):
|
def test_call_linter_cmd_line_git_id(self):
|
||||||
cmd = '{0} {1} d7125d5f4f0cc9623f670a66c54f131acc50032d'.format(
|
cmd = '{0} {1} d7125d5f4f0cc9623f670a66c54f131acc50032d'.format(
|
||||||
|
|||||||
@@ -99,9 +99,11 @@ class TestLinterFunctions(unittest.TestCase):
|
|||||||
linter = MigrationLinter(fixtures.CORRECT_PROJECT)
|
linter = MigrationLinter(fixtures.CORRECT_PROJECT)
|
||||||
migrations = linter._gather_all_migrations()
|
migrations = linter._gather_all_migrations()
|
||||||
self.assertEqual(len(migrations), 3)
|
self.assertEqual(len(migrations), 3)
|
||||||
self.assertEqual(migrations[0][0], 'test_app1')
|
self.assertEqual(
|
||||||
self.assertEqual(migrations[0][1], '0001_initial')
|
sorted(migrations),
|
||||||
self.assertEqual(migrations[1][0], 'test_app1')
|
sorted([
|
||||||
self.assertEqual(migrations[1][1], '0002_a_new_null_field')
|
("test_app1", "0001_initial"),
|
||||||
self.assertEqual(migrations[2][0], 'test_app2')
|
("test_app1", "0002_a_new_null_field"),
|
||||||
self.assertEqual(migrations[2][1], '0001_foo')
|
("test_app2", "0001_foo"),
|
||||||
|
])
|
||||||
|
)
|
||||||
Reference in new issue
Block a user