diff --git a/tests/bash_tests/testcases.py b/tests/bash_tests/testcases.py index a353a2de..b055c36d 100644 --- a/tests/bash_tests/testcases.py +++ b/tests/bash_tests/testcases.py @@ -374,18 +374,18 @@ set Exif.Photo.DateTimeDigitized 2020:05:26 07:31:42 out += BT.Executer('exiv2 -u -v print {images_2_str}', vars(), assert_returncode=[253]) out += '' out += BT.Executer('exiv2 -u -v -b -pt print {images_2_str}', vars()) - e = BT.Executer('exiv2 -u -v -b -pt print {images_2_str}', vars(), redirect_stderr_to_stdout=False) + e = BT.Executer('exiv2 -u -v -b -pt print {images_2_str}', vars(), redirect_stderr_to_stdout=False, decode_output=False) BT.save(e.stdout, 'iii') - out += e.stderr + out += e.stderr.decode() out += '\nExtract Exif data --------------------------------------------------------' out += BT.Executer('exiv2 -u -vf extract {images_2_str}', vars()) out += '\nExtract Thumbnail --------------------------------------------------------' out += BT.Executer('exiv2 -u -vf -et extract {images_2_str}', vars(), assert_returncode=[253]) - e = BT.Executer('exiv2 -u -v -b -pt print {images_3_str}', vars(), redirect_stderr_to_stdout=False) + e = BT.Executer('exiv2 -u -v -b -pt print {images_3_str}', vars(), redirect_stderr_to_stdout=False, decode_output=False) BT.save(e.stdout, 'jjj') - out += e.stderr + out += e.stderr.decode() out += '\nCompare image data and extracted data ------------------------------------' out += BT.diff('iii', 'jjj') @@ -400,9 +400,9 @@ set Exif.Photo.DateTimeDigitized 2020:05:26 07:31:42 out += '\nInsert Exif data ---------------------------------------------------------' out += BT.Executer('exiv2 -u -v insert {images_2_str}', vars()) - e = BT.Executer('exiv2 -u -v -b -pt print {images_3_str}', vars(), redirect_stderr_to_stdout=False) + e = BT.Executer('exiv2 -u -v -b -pt print {images_3_str}', vars(), redirect_stderr_to_stdout=False, decode_output=False) BT.save(e.stdout, 'kkk') - out += e.stderr + out += e.stderr.decode() out += '\nCompare original and inserted image data ---------------------------------' out += BT.diff('iii', 'kkk') @@ -472,7 +472,7 @@ set Exif.Photo.DateTimeDigitized 2020:05:26 07:31:42 BT.copyTestFile(i) out += BT.Executer('exiv2 -pS {img}', vars()) - e = BT.Executer('exiv2 -pC {img}', vars(), adjust_output=False, decode_output=False) + e = BT.Executer('exiv2 -pC {img}', vars(), compatible_output=False, decode_output=False) BT.save(e.stdout, stub + '_1.icc') out += BT.Executer('exiv2 -eC --force {img}', vars()) BT.mv(iccname, stub + '_2.icc') @@ -480,7 +480,7 @@ set Exif.Photo.DateTimeDigitized 2020:05:26 07:31:42 BT.copyTestFile('large.icc', iccname) out += BT.Executer('exiv2 -iC {img}', vars()) - e = BT.Executer('exiv2 -pC {img}', vars(), adjust_output=False, decode_output=False) + e = BT.Executer('exiv2 -pC {img}', vars(), compatible_output=False, decode_output=False) BT.save(e.stdout, stub + '_large_1.icc') out += BT.Executer('exiv2 -pS {img}', vars()) out += BT.Executer('exiv2 -eC --force {img}', vars()) @@ -489,7 +489,7 @@ set Exif.Photo.DateTimeDigitized 2020:05:26 07:31:42 BT.copyTestFile('small.icc', iccname) out += BT.Executer('exiv2 -iC {img}', vars()) - e = BT.Executer('exiv2 -pC {img}', vars(), adjust_output=False, decode_output=False) + e = BT.Executer('exiv2 -pC {img}', vars(), compatible_output=False, decode_output=False) BT.save(e.stdout, stub + '_small_1.icc') out += BT.Executer('exiv2 -pS {img}', vars()) out += BT.Executer('exiv2 -eC --force {img}', vars()) @@ -1189,3 +1189,4 @@ set Exif.Photo.DateTimeDigitized 2020:05:26 07:31:42 out += BT.Executer('exiv2 -pS {webp}', vars()) BT.reportTest('webp-test', out) + diff --git a/tests/bash_tests/utils.py b/tests/bash_tests/utils.py index e85ba6dd..77ba2227 100644 --- a/tests/bash_tests/utils.py +++ b/tests/bash_tests/utils.py @@ -158,7 +158,7 @@ def diff(file1, file2, encoding=None): output = [] new_part = True num = 0 - for line in difflib.unified_diff(text1, text2, fromfile=file1, tofile=file2, lineterm=''): + for line in difflib.unified_diff(text1, text2, fromfile=file1, tofile=file2, n=0, lineterm=''): num += 1 if num < 3: # line = line.replace('--- ', '<<< ') @@ -207,7 +207,7 @@ def diff_bytes(file1, file2, return_str=False): new_part = True num = 0 for line in difflib.diff_bytes(difflib.unified_diff, text1, text2, - fromfile=file1.encode(), tofile=file2.encode(), lineterm=b''): + fromfile=file1.encode(), tofile=file2.encode(), n=0, lineterm=b''): num += 1 if num < 3: line = line.decode() @@ -371,8 +371,8 @@ class Executer: """ Execute a command in the shell, return a `Executer` object. - If a binary of Exiv2 is executed, the absolute path is automatically added. - - `adjust_output`: whether to filter path delimiters, whitespace characters in output - - `decode_output`: whether to decode output from bytes to str + - `compatible_output=True`: filter out path delimiters, whitespace characters in output + - `decode_output=True`: decode output from bytes to str Sample: >>> Executer('echo Hello').stdout @@ -386,7 +386,7 @@ class Executer: stdin: (str, bytes) = None, redirect_stderr_to_stdout=True, assert_returncode=[0], - adjust_output=True, + compatible_output=True, decode_output=True): self.cmd = cmd.format(**vars_dict) self.cwd = cwd or Config.tmp_dir @@ -397,8 +397,8 @@ class Executer: self.redirect_stderr_to_stdout = redirect_stderr_to_stdout self.assert_returncode = assert_returncode # self.returncode = 0 - self.adjust_output = adjust_output - self.decode_output = decode_output + self.compatible_output = compatible_output + self.decode_output = decode_output # Generate the args for subprocess.Popen args = self.cmd.split(' ', maxsplit=1) @@ -438,7 +438,7 @@ class Executer: output = [i.rstrip(b'\r\n').rstrip(b'\n') for i in output] # Remove the last line break of the output # Extract stdout and stderr - if self.adjust_output: + if self.compatible_output: output = [i.replace(b'\r\n', b'\n') for i in output] # Fix dos line-endings output = [i.replace(b'\\', rb'/') for i in output] # Fix dos path separators if self.decode_output: @@ -608,3 +608,4 @@ def extendedTest(filename): e = Executer('iptcprint {tmp}', vars(), decode_output=False) save(e.stdout + b'\n', test_file) return diffCheck(good_file, test_file, in_bytes=True) +