aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Kriechbaumer <Kriechi@users.noreply.github.com>2016-06-08 13:09:40 +0200
committerThomas Kriechbaumer <Kriechi@users.noreply.github.com>2016-06-08 13:09:40 +0200
commit696fe209e071fbe5881ceb152564b9fcb4fe1aae (patch)
tree75d9b46bbe4548509dfbc3bd671ff184e7d391e1
parente93fe9d4fa37ec1aae60eee612be7a9cd989891c (diff)
parent7d62121b858040935555098ec4c7323662b76e3b (diff)
downloadmitmproxy-696fe209e071fbe5881ceb152564b9fcb4fe1aae.tar.gz
mitmproxy-696fe209e071fbe5881ceb152564b9fcb4fe1aae.tar.bz2
mitmproxy-696fe209e071fbe5881ceb152564b9fcb4fe1aae.zip
Merge pull request #1223 from dufferzafar/pathod-lang-http2
Python 3 - pathod.language.http2
-rw-r--r--pathod/language/http2.py16
-rw-r--r--test/pathod/test_language_http2.py66
-rw-r--r--tox.ini2
3 files changed, 42 insertions, 42 deletions
diff --git a/pathod/language/http2.py b/pathod/language/http2.py
index 85d9047f..ea4fcd27 100644
--- a/pathod/language/http2.py
+++ b/pathod/language/http2.py
@@ -60,7 +60,7 @@ class _HTTP2Message(message.Message):
headers = self.toks(_HeaderMixin)
if not self.raw:
- if not get_header("content-length", headers):
+ if not get_header(b"content-length", headers):
if not self.body:
length = 0
else:
@@ -125,7 +125,7 @@ class ShortcutUserAgent(_HeaderMixin, base.OptionsOrValue):
def values(self, settings):
value = self.value.val
if self.option_used:
- value = user_agents.get_by_shortcut(value.lower())[2]
+ value = user_agents.get_by_shortcut(value.lower().decode())[2].encode()
return (
self.key.get_generator(settings),
@@ -190,7 +190,7 @@ class Response(_HTTP2Message):
resp = http.Response(
(2, 0),
self.status_code.string(),
- '',
+ b'',
headers,
body,
)
@@ -262,7 +262,7 @@ class Request(_HTTP2Message):
else:
path = self.path.string()
if self.nested_response:
- path += self.nested_response.parsed.spec()
+ path += self.nested_response.parsed.spec().encode()
headers = Headers([header.values(settings) for header in self.headers])
@@ -271,11 +271,11 @@ class Request(_HTTP2Message):
body = body.string()
req = http.Request(
- '',
+ b'',
self.method.string(),
- '',
- '',
- '',
+ b'',
+ b'',
+ b'',
path,
(2, 0),
headers,
diff --git a/test/pathod/test_language_http2.py b/test/pathod/test_language_http2.py
index de256626..a2bffe63 100644
--- a/test/pathod/test_language_http2.py
+++ b/test/pathod/test_language_http2.py
@@ -1,4 +1,4 @@
-from six.moves import cStringIO as StringIO
+from six import BytesIO
import netlib
from netlib import tcp
@@ -10,11 +10,11 @@ import tutils
def parse_request(s):
- return language.parse_pathoc(s, True).next()
+ return next(language.parse_pathoc(s, True))
def parse_response(s):
- return language.parse_pathod(s, True).next()
+ return next(language.parse_pathod(s, True))
def default_settings():
@@ -25,7 +25,7 @@ def default_settings():
def test_make_error_response():
- d = StringIO()
+ d = BytesIO()
s = http2.make_error_response("foo", "bar")
language.serve(s, d, default_settings())
@@ -46,15 +46,15 @@ class TestRequest:
def test_simple(self):
r = parse_request('GET:"/foo"')
- assert r.method.string() == "GET"
- assert r.path.string() == "/foo"
+ assert r.method.string() == b"GET"
+ assert r.path.string() == b"/foo"
r = parse_request('GET:/foo')
- assert r.path.string() == "/foo"
+ assert r.path.string() == b"/foo"
def test_multiple(self):
r = list(language.parse_pathoc("GET:/ PUT:/"))
- assert r[0].method.string() == "GET"
- assert r[1].method.string() == "PUT"
+ assert r[0].method.string() == b"GET"
+ assert r[1].method.string() == b"PUT"
assert len(r) == 2
l = """
@@ -71,8 +71,8 @@ class TestRequest:
"""
r = list(language.parse_pathoc(l, True))
assert len(r) == 2
- assert r[0].method.string() == "GET"
- assert r[1].method.string() == "PUT"
+ assert r[0].method.string() == b"GET"
+ assert r[1].method.string() == b"PUT"
l = """
get:"http://localhost:9999/p/200"
@@ -80,11 +80,11 @@ class TestRequest:
"""
r = list(language.parse_pathoc(l, True))
assert len(r) == 2
- assert r[0].method.string() == "GET"
- assert r[1].method.string() == "GET"
+ assert r[0].method.string() == b"GET"
+ assert r[1].method.string() == b"GET"
def test_render_simple(self):
- s = StringIO()
+ s = BytesIO()
r = parse_request("GET:'/foo'")
assert language.serve(
r,
@@ -101,32 +101,32 @@ class TestRequest:
r = parse_request('GET:/')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("content-length", "0")
+ assert r.headers[0].values(default_settings()) == (b"content-length", b"0")
r = parse_request('GET:/:b"foobar"')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("content-length", "6")
+ assert r.headers[0].values(default_settings()) == (b"content-length", b"6")
r = parse_request('GET:/:b"foobar":h"content-length"="42"')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("content-length", "42")
+ assert r.headers[0].values(default_settings()) == (b"content-length", b"42")
r = parse_request('GET:/:r:b"foobar":h"content-length"="42"')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("content-length", "42")
+ assert r.headers[0].values(default_settings()) == (b"content-length", b"42")
def test_content_type(self):
r = parse_request('GET:/:r:c"foobar"')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("content-type", "foobar")
+ assert r.headers[0].values(default_settings()) == (b"content-type", b"foobar")
def test_user_agent(self):
r = parse_request('GET:/:r:ua')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("user-agent", user_agents.get_by_shortcut('a')[2])
+ assert r.headers[0].values(default_settings()) == (b"user-agent", user_agents.get_by_shortcut('a')[2].encode())
def test_render_with_headers(self):
- s = StringIO()
+ s = BytesIO()
r = parse_request('GET:/foo:h"foo"="bar"')
assert language.serve(
r,
@@ -142,7 +142,7 @@ class TestRequest:
assert r.values(default_settings())
def test_render_with_body(self):
- s = StringIO()
+ s = BytesIO()
r = parse_request("GET:'/foo':bfoobar")
assert language.serve(
r,
@@ -177,29 +177,29 @@ class TestResponse:
r = parse_response('200')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("content-length", "0")
+ assert r.headers[0].values(default_settings()) == (b"content-length", b"0")
def test_content_type(self):
r = parse_response('200:r:c"foobar"')
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("content-type", "foobar")
+ assert r.headers[0].values(default_settings()) == (b"content-type", b"foobar")
def test_simple(self):
r = parse_response('200:r:h"foo"="bar"')
- assert r.status_code.string() == "200"
+ assert r.status_code.string() == b"200"
assert len(r.headers) == 1
- assert r.headers[0].values(default_settings()) == ("foo", "bar")
+ assert r.headers[0].values(default_settings()) == (b"foo", b"bar")
assert r.body is None
r = parse_response('200:r:h"foo"="bar":bfoobar:h"bla"="fasel"')
- assert r.status_code.string() == "200"
+ assert r.status_code.string() == b"200"
assert len(r.headers) == 2
- assert r.headers[0].values(default_settings()) == ("foo", "bar")
- assert r.headers[1].values(default_settings()) == ("bla", "fasel")
- assert r.body.string() == "foobar"
+ assert r.headers[0].values(default_settings()) == (b"foo", b"bar")
+ assert r.headers[1].values(default_settings()) == (b"bla", b"fasel")
+ assert r.body.string() == b"foobar"
def test_render_simple(self):
- s = StringIO()
+ s = BytesIO()
r = parse_response('200')
assert language.serve(
r,
@@ -208,7 +208,7 @@ class TestResponse:
)
def test_render_with_headers(self):
- s = StringIO()
+ s = BytesIO()
r = parse_response('200:h"foo"="bar"')
assert language.serve(
r,
@@ -217,7 +217,7 @@ class TestResponse:
)
def test_render_with_body(self):
- s = StringIO()
+ s = BytesIO()
r = parse_response('200:bfoobar')
assert language.serve(
r,
diff --git a/tox.ini b/tox.ini
index b75f536f..feb68024 100644
--- a/tox.ini
+++ b/tox.ini
@@ -16,7 +16,7 @@ commands =
# remove bash & pipe & grep hack after cryptography ships with openssl 1.1.0
whitelist_externals = bash
commands =
- bash -c 'py.test --cov netlib --cov mitmproxy --cov pathod --color=yes --timeout 60 test/netlib test/mitmproxy/script test/pathod/test_utils.py test/pathod/test_log.py test/pathod/test_language_generators.py test/pathod/test_language_writer.py test/pathod/test_language_base.py test/pathod/test_language_http.py test/pathod/test_language_websocket.py 2>&1 | grep -v Cryptography_locking_cb'
+ bash -c 'py.test --cov netlib --cov mitmproxy --cov pathod --color=yes --timeout 60 test/netlib test/mitmproxy/script test/pathod/test_utils.py test/pathod/test_log.py test/pathod/test_language_generators.py test/pathod/test_language_writer.py test/pathod/test_language_base.py test/pathod/test_language_http.py test/pathod/test_language_websocket.py test/pathod/test_language_http2.py 2>&1 | grep -v Cryptography_locking_cb'
codecov -e TOXENV
[testenv:docs]