aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2011-02-06 16:56:13 +1300
committerAldo Cortesi <aldo@nullcube.com>2011-02-06 16:56:13 +1300
commita4eaafab5a003298c8235f7502fb684da2220ca8 (patch)
tree1f0b97670d878685e29cf6e3be3cc22e742a4e7c
parent7156d1a73ab6ce39ae8f8325bc8a62c0083cd054 (diff)
downloadmitmproxy-a4eaafab5a003298c8235f7502fb684da2220ca8.tar.gz
mitmproxy-a4eaafab5a003298c8235f7502fb684da2220ca8.tar.bz2
mitmproxy-a4eaafab5a003298c8235f7502fb684da2220ca8.zip
Further fine-tuning for pretty_xmlish.
-rw-r--r--libmproxy/utils.py16
-rw-r--r--test/test_utils.py5
2 files changed, 12 insertions, 9 deletions
diff --git a/libmproxy/utils.py b/libmproxy/utils.py
index 2a878676..e29910c5 100644
--- a/libmproxy/utils.py
+++ b/libmproxy/utils.py
@@ -52,13 +52,10 @@ TAG = r"""
(?P<close>\s*\/)?
(?P<name>\w+)
(
- [a-zA-Z0-9_#:=().%\/]+
- |
- "[^\"]*"['\"]*
- |
- '[^']*'['\"]*
- |
- \s+
+ [^'"\t >]+ |
+ "[^\"]*"['\"]* |
+ '[^']*'['\"]* |
+ \s+
)*
(?P<selfcont>\s*\/\s*)?
\s*>
@@ -67,7 +64,7 @@ UNI = set(["br", "hr", "img", "input", "area", "link"])
INDENT = " "*4
def pretty_xmlish(s):
"""
- This is a robust, general pretty-printer for XML-ish data.
+ A robust pretty-printer for XML-ish data.
Returns a list of lines.
"""
data, offset, indent, prev = [], 0, 0, None
@@ -87,6 +84,9 @@ def pretty_xmlish(s):
if not any([i.group("close"), i.group("selfcont"), name in UNI]):
indent += 1
prev = name
+ trail = s[offset:]
+ if trail.strip():
+ data.append(s[offset:])
return data
diff --git a/test/test_utils.py b/test/test_utils.py
index 1ec4f2f5..5cf81e2e 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -242,6 +242,9 @@ class upretty_xmlish(libpry.AutoTree):
assert f(r"<foo a='b\"'>")
assert f(r'<a b=(a.b) href="foo">')
assert f('<td width=25%>')
+ assert f('<form name="search" action="/search.php" method="get" accept-charset="utf-8" class="search">')
+ assert f('<img src="gif" width="125" height="16" alt=&quot;&quot; />')
+
def test_all(self):
def isbalanced(ret):
@@ -278,7 +281,7 @@ class upretty_xmlish(libpry.AutoTree):
isbalanced(ret)
s = "gobbledygook"
- print utils.pretty_xmlish(s)
+ assert utils.pretty_xmlish(s) == ["gobbledygook"]