Merge pull request #2338 from ujjwal96/test-cov

Increased test coverage
This commit is contained in:
Thomas Kriechbaumer 2017-05-17 15:12:36 +08:00 committed by GitHub
commit feff5bd138
6 changed files with 79 additions and 8 deletions

View File

@ -21,9 +21,7 @@ exclude_lines =
[tool:full_coverage]
exclude =
mitmproxy/contentviews/__init__.py
mitmproxy/contentviews/wbxml.py
mitmproxy/contentviews/xml_html.py
mitmproxy/net/tcp.py
mitmproxy/net/http/encoding.py
mitmproxy/proxy/protocol/
@ -31,7 +29,6 @@ exclude =
mitmproxy/proxy/root_context.py
mitmproxy/proxy/server.py
mitmproxy/tools/
mitmproxy/controller.py
mitmproxy/flow.py
mitmproxy/master.py
pathod/pathoc.py
@ -45,7 +42,6 @@ exclude =
mitmproxy/addons/termlog.py
mitmproxy/contentviews/base.py
mitmproxy/contentviews/wbxml.py
mitmproxy/contentviews/xml_html.py
mitmproxy/controller.py
mitmproxy/ctx.py
mitmproxy/exceptions.py

View File

@ -9,23 +9,28 @@ from mitmproxy.test import tutils
class TestContentView(contentviews.View):
name = "test"
prompt = ("t", "test")
prompt = ("test", "t")
content_types = ["test/123"]
def test_add_remove():
tcv = TestContentView()
contentviews.add(tcv)
assert tcv in contentviews.views
# repeated addition causes exception
with pytest.raises(ContentViewException):
with pytest.raises(ContentViewException, match="Duplicate view"):
contentviews.add(tcv)
tcv2 = TestContentView()
tcv2.name = "test2"
tcv2.prompt = ("test2", "t")
# Same shortcut doesn't work either.
with pytest.raises(ContentViewException):
contentviews.add(TestContentView())
with pytest.raises(ContentViewException, match="Duplicate view shortcut"):
contentviews.add(tcv2)
contentviews.remove(tcv)
assert tcv not in contentviews.views
def test_get_content_view():
@ -43,6 +48,7 @@ def test_get_content_view():
headers=Headers(content_type="application/json")
)
assert desc == "JSON"
assert list(lines)
desc, lines, err = contentviews.get_content_view(
contentviews.get("JSON"),
@ -84,3 +90,4 @@ def test_get_message_content_view():
def test_get_by_shortcut():
assert contentviews.get_by_shortcut("s")
assert not contentviews.get_by_shortcut("b")

View File

@ -11,6 +11,13 @@ def test_simple():
v = full_eval(xml_html.ViewXmlHtml())
assert v(b"foo") == ('XML', [[('text', 'foo')]])
assert v(b"<html></html>") == ('HTML', [[('text', '<html></html>')]])
assert v(b"<>") == ('XML', [[('text', '<>')]])
assert v(b"<p") == ('XML', [[('text', '<p')]])
with open(data.path("simple.html")) as f:
input = f.read()
tokens = xml_html.tokenize(input)
assert str(next(tokens)) == "Tag(<!DOCTYPE html>)"
@pytest.mark.parametrize("filename", [
@ -18,6 +25,7 @@ def test_simple():
"cdata.xml",
"comment.xml",
"inline.html",
"test.html"
])
def test_format_xml(filename):
path = data.path(filename)

View File

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>
Lorem ipsum dolor
<p>
sit amet, consectetur
<p>
adipiscing elit, sed
<p>
do eiusmod tempor
<p>
incididunt ut
<p>
labore et dolore
<p>
magna aliqua.
<p>
Ut enim ad minim
<p>
veniam, quis nostrud
<p>
exercitation
<p>
ullamco laboris
<p>
nisi ut aliquip ex ea
<p>
commodo consequat.
<p>
Duis aute irure
<p>
dolor in reprehenderit
<p>
in voluptate velit
<p>
esse cillum dolore
<p>eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</body>
</html>

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>Lorem ipsum dolor<p>sit amet, consectetur <p>adipiscing elit, sed<p>do eiusmod tempor<p> incididunt ut<p> labore et dolore<p> magna aliqua.
<p>Ut enim ad minim <p>veniam, quis nostrud <p>exercitation <p>ullamco laboris <p>
nisi ut aliquip ex ea <p>commodo consequat.<p>Duis aute irure <p>dolor in reprehenderit <p>in voluptate velit<p> esse cillum dolore <p>eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</body>
</html>

View File

@ -176,6 +176,8 @@ class TestDummyReply:
reply = controller.DummyReply()
reply.ack()
reply.take()
with pytest.raises(ControlException):
reply.mark_reset()
reply.commit()
reply.mark_reset()
assert reply.state == "committed"