Improve the cache

React to Comments and add a Test
This commit is contained in:
Felix committed 2018-12-23 23:28:45 +01:00
1 parent 03e48b7575
commit 1c28412ebd
4 files changed
+23 -8

No files matched your search

+3 -6
View File
@@ -33,18 +33,15 @@ class Cache(dict):
def load(self):
try:
f = open(self.filename, 'rb')
with open(self.filename, 'rb') as f:
tmp_dict = pickle.load(f)
self.update(tmp_dict)
f.close()
except IOError:
pass
def save(self):
print(self)
f = open(self.filename, 'wb')
pickle.dump(self, f, 2)
f.close()
with open(self.filename, 'wb') as f:
pickle.dump(self, f, protocol=pickle.HIGHEST_PROTOCOL)
def md5(self, app_name, migration):
path = compose_migration_path(self.django_folder, app_name, migration)
@@ -91,7 +91,6 @@ class MigrationLinter(object):
if self.should_ignore_migration(app_name, migration_name):
print('IGNORE')
self.new_cache[md5hash] = {'result': 'IGNORE'}
self.nb_ignored += 1
return
+20
View File
@@ -97,6 +97,26 @@ class CacheTest(unittest.TestCase):
linter.lint_all_migrations()
sql_mock.assert_not_called()
def test_cache_ignored_command_line(self):
cache_file = os.path.join(DEFAULT_CACHE_PATH, 'test_project_ignore_migration.pickle')
if os.path.exists(cache_file):
os.remove(cache_file)
linter = MigrationLinter(fixtures.IGNORE_MIGRATION_PROJECT,
ignore_name_contains='0001')
with mock.patch.object(MigrationLinter, 'get_sql', wraps=linter.get_sql) as sql_mock:
linter.lint_all_migrations()
sql_mock.assert_called()
cache = Cache(
fixtures.IGNORE_MIGRATION_PROJECT,
DEFAULT_CACHE_PATH
)
cache.load()
self.assertNotIn('63230606af0eccaef7f1f78c537c624c', cache)
self.assertEqual(cache['5c5ca1780a9f28439c1defc1f32af894']['result'], 'IGNORE')
def test_cache_modified(self):
cache_file = os.path.join(DEFAULT_CACHE_PATH, 'test_project_alter_column.pickle')
if os.path.exists(cache_file):
-1
View File
@@ -172,7 +172,6 @@ class CallLinterFromCommandLineTest(unittest.TestCase):
def test_call_linter_cmd_line_no_cache(self):
cache_file = os.path.join(DEFAULT_CACHE_PATH, 'test_correct_project.pickle')
print(cache_file)
if os.path.exists(cache_file):
os.remove(cache_file)