Remove inner_repr, fixup escape_unprintables

This commit is contained in:
Shadab Zafar 2016-05-25 16:42:46 +05:30
parent 1699592f09
commit 1bbb178b6a
2 changed files with 8 additions and 26 deletions

View File

@ -2,7 +2,7 @@ import os
import sys import sys
import netlib.utils import netlib.utils
import six from netlib.utils import bytes_to_escaped_str
SIZE_UNITS = dict( SIZE_UNITS = dict(
@ -55,27 +55,13 @@ def xrepr(s):
return repr(s)[1:-1] return repr(s)[1:-1]
def inner_repr(s):
"""
Returns the inner portion of a string or unicode repr (i.e. without the
quotes)
"""
if (six.PY2 and isinstance(s, unicode)) or isinstance(s, bytes):
return repr(s)[2:-1]
else:
return repr(s)[1:-1]
def escape_unprintables(s): def escape_unprintables(s):
""" """
Like inner_repr, but preserves line breaks. Like inner_repr, but preserves line breaks.
""" """
s = s.replace("\r\n", "PATHOD_MARKER_RN") s = s.replace(b"\r\n", b"PATHOD_MARKER_RN")
s = s.replace("\n", "PATHOD_MARKER_N") s = s.replace(b"\n", b"PATHOD_MARKER_N")
if six.PY2: s = bytes_to_escaped_str(s)
s = inner_repr(s)
else:
s = s.encode('unicode_escape').decode('ascii')
s = s.replace("PATHOD_MARKER_RN", "\n") s = s.replace("PATHOD_MARKER_RN", "\n")
s = s.replace("PATHOD_MARKER_N", "\n") s = s.replace("PATHOD_MARKER_N", "\n")
return s return s

View File

@ -1,6 +1,8 @@
from pathod import utils from pathod import utils
import tutils import tutils
import six
def test_membool(): def test_membool():
m = utils.MemBool() m = utils.MemBool()
@ -27,14 +29,8 @@ def test_data_path():
tutils.raises(ValueError, utils.data.path, "nonexistent") tutils.raises(ValueError, utils.data.path, "nonexistent")
def test_inner_repr():
assert utils.inner_repr("\x66") == "\x66"
assert utils.inner_repr(u"foo") == "foo"
assert utils.inner_repr(b"foo") == "foo"
def test_escape_unprintables(): def test_escape_unprintables():
s = "".join([chr(i) for i in range(255)]) s = "".join([chr(i) for i in range(255)])
e = utils.escape_unprintables(s) e = utils.escape_unprintables(six.b(s))
assert e.encode('ascii') assert e.encode('ascii')
assert not "PATHOD_MARKER" in e assert "PATHOD_MARKER" not in e