From ba9f0150b8b9e3dda3fdb66cb9a3d3f0898919d6 Mon Sep 17 00:00:00 2001 From: Thomas Kriechbaumer Date: Tue, 12 Jan 2016 22:25:02 +0100 Subject: [PATCH] encode non-printable body in hex --- hyperframe/frame.py | 7 ++++--- test/test_frames.py | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/hyperframe/frame.py b/hyperframe/frame.py index 7a1abd7..3e6ccec 100644 --- a/hyperframe/frame.py +++ b/hyperframe/frame.py @@ -9,6 +9,7 @@ """ import collections import struct +import binascii from .exceptions import UnknownFrameError, InvalidPaddingError from .flags import Flag, Flags @@ -55,9 +56,9 @@ def __init__(self, stream_id, flags=()): def __repr__(self): flags = ", ".join(self.flags) or "None" - body = self.serialize_body() - if len(body) > 100: - body = str(body[:100]) + "..." + body = binascii.hexlify(self.serialize_body()).decode('ascii') + if len(body) > 20: + body = body[:20] + "..." return ( "{type}(Stream: {stream}; Flags: {flags}): {body}" ).format(type=type(self).__name__, stream=self.stream_id, flags=flags, body=body) diff --git a/test/test_frames.py b/test/test_frames.py index 1c0d3cf..e0fc5ba 100644 --- a/test/test_frames.py +++ b/test/test_frames.py @@ -47,11 +47,11 @@ def test_parse_frame_header_unknown_type(self): def test_repr(self, monkeypatch): f = Frame(stream_id=0) - monkeypatch.setattr(Frame, "serialize_body", lambda _: "body") - assert repr(f) == "Frame(Stream: 0; Flags: None): body" + monkeypatch.setattr(Frame, "serialize_body", lambda _: b"body") + assert repr(f) == "Frame(Stream: 0; Flags: None): 626f6479" - monkeypatch.setattr(Frame, "serialize_body", lambda _: "A"*105) - assert repr(f) == "Frame(Stream: 0; Flags: None): {}...".format("A"*100) + monkeypatch.setattr(Frame, "serialize_body", lambda _: b"A"*25) + assert repr(f) == "Frame(Stream: 0; Flags: None): {}...".format("41"*10) class TestDataFrame(object):