[Reproducible-commits] [diffoscope] 02/02: Add missing encode() for the 'too much input for diff' message

Jérémy Bobbio lunar at moszumanska.debian.org
Tue Sep 22 09:23:24 UTC 2015


This is an automated email from the git hooks/post-receive script.

lunar pushed a commit to branch master
in repository diffoscope.

commit 93384922ef88eb99663abdcf2d72b78246616cfe
Author: Jérémy Bobbio <lunar at debian.org>
Date:   Tue Sep 22 10:44:47 2015 +0200

    Add missing encode() for the 'too much input for diff' message
    
    Let's add a small test for this feature while we are at it.
---
 diffoscope/difference.py |  2 +-
 tests/test_difference.py | 30 ++++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/diffoscope/difference.py b/diffoscope/difference.py
index 9266018..3c75362 100644
--- a/diffoscope/difference.py
+++ b/diffoscope/difference.py
@@ -235,7 +235,7 @@ def make_feeder_from_raw_reader(in_file, filter=lambda buf: buf):
             out_file.write(filter(buf))
             max_lines = Config.general.max_diff_input_lines
             if max_lines > 0 and line_count >= max_lines:
-                out_file.write('[ Too much input for diff ]%s\n' % (' ' * out_file.fileno()))
+                out_file.write('[ Too much input for diff ]{}\n'.format(' ' * out_file.fileno()).encode('utf-8'))
                 end_nl = True
                 break
             end_nl = buf[-1] == '\n'
diff --git a/tests/test_difference.py b/tests/test_difference.py
new file mode 100644
index 0000000..c7528fb
--- /dev/null
+++ b/tests/test_difference.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+#
+# diffoscope: in-depth comparison of files, archives, and directories
+#
+# Copyright © 2015 Jérémy Bobbio <lunar at debian.org>
+#
+# diffoscope is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# diffoscope is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with diffoscope.  If not, see <http://www.gnu.org/licenses/>.
+
+from io import StringIO
+import pytest
+from diffoscope.config import Config
+from diffoscope.difference import Difference
+
+def test_too_much_input_for_diff(monkeypatch):
+    monkeypatch.setattr(Config, 'max_diff_input_lines', 20)
+    too_long_text_a = StringIO("a\n" * 21)
+    too_long_text_b = StringIO("b\n" * 21)
+    difference = Difference.from_text_readers(too_long_text_a, too_long_text_b, 'a', 'b')
+    assert '[ Too much input for diff ]' in difference.unified_diff 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git



More information about the Reproducible-commits mailing list