From 749208b5f822998baa7e8bf9b012abfd3bf951aa Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 9 Jun 2019 15:05:33 -0400 Subject: [PATCH] Update patching code to work on Python 2.7 Signed-off-by: Roberto Rosario --- mayan/apps/dependencies/classes.py | 12 ++++++++---- mayan/apps/dependencies/tests/test_classes.py | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/mayan/apps/dependencies/classes.py b/mayan/apps/dependencies/classes.py index 07d1ebf105..c1bc790682 100644 --- a/mayan/apps/dependencies/classes.py +++ b/mayan/apps/dependencies/classes.py @@ -415,10 +415,14 @@ class Dependency(object): for replace_entry in replace_list or []: for path_entry in path_object.glob('**/{}'.format(replace_entry['filename_pattern'])): if path_entry.is_file(): - with fileinput.FileInput(path_entry, inplace=True, backup='.bck') as fo: - for line in fo: - for pattern in replace_entry['content_patterns']: - print(line.replace(pattern['search'], pattern['replace']), end='') + # PY3 + # Don't use context processor to allow working on Python 2.7 + # Update on Mayan EDMS version >= 4.0 + file_object = fileinput.FileInput(force_text(path_entry), inplace=True) + for line in file_object: + for pattern in replace_entry['content_patterns']: + print(line.replace(pattern['search'], pattern['replace']), end='') + file_object.close() def verify(self): """ diff --git a/mayan/apps/dependencies/tests/test_classes.py b/mayan/apps/dependencies/tests/test_classes.py index a43decfb52..dbc9f6ff87 100644 --- a/mayan/apps/dependencies/tests/test_classes.py +++ b/mayan/apps/dependencies/tests/test_classes.py @@ -25,7 +25,7 @@ class DependencyClassTestCase(BaseTestCase): path_temporary_directory = Path(temporary_directory) path_test_file = path_temporary_directory / 'test_file.css' - with open(path_test_file, mode='w') as file_object: + with path_test_file.open(mode='w') as file_object: file_object.write( '@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");' ) @@ -45,7 +45,7 @@ class DependencyClassTestCase(BaseTestCase): dependency.patch_files(path=temporary_directory, replace_list=replace_list) - with open(path_test_file, mode='r') as file_object: + with path_test_file.open(mode='r') as file_object: final_text = file_object.read() shutil.rmtree(temporary_directory, ignore_errors=True)