aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_flow_export.py
diff options
context:
space:
mode:
authorShadab Zafar <dufferzafar0@gmail.com>2016-02-09 21:26:05 +0530
committerShadab Zafar <dufferzafar0@gmail.com>2016-02-09 21:26:05 +0530
commit1c2f8a608e4657f5b7eaeca97164aec221dcb341 (patch)
tree0bfe2da002e9f18f432a50bf9e7896b3231f8450 /test/test_flow_export.py
parentae8fb0a3d39cf71cb43b30622304aba992e7580f (diff)
downloadmitmproxy-1c2f8a608e4657f5b7eaeca97164aec221dcb341.tar.gz
mitmproxy-1c2f8a608e4657f5b7eaeca97164aec221dcb341.tar.bz2
mitmproxy-1c2f8a608e4657f5b7eaeca97164aec221dcb341.zip
Rename test_export_flow.py to test_flow_export.py
Diffstat (limited to 'test/test_flow_export.py')
-rw-r--r--test/test_flow_export.py105
1 files changed, 105 insertions, 0 deletions
diff --git a/test/test_flow_export.py b/test/test_flow_export.py
new file mode 100644
index 00000000..7bd7a442
--- /dev/null
+++ b/test/test_flow_export.py
@@ -0,0 +1,105 @@
+import netlib.tutils
+from libmproxy import flow_export
+from . import tutils
+
+req_get = netlib.tutils.treq(
+ method='GET',
+ content='',
+)
+
+req_post = netlib.tutils.treq(
+ method='POST',
+ headers=None,
+)
+
+req_patch = netlib.tutils.treq(
+ method='PATCH',
+ path=b"/path?query=param",
+)
+
+
+def test_curl_command():
+ flow = tutils.tflow(req=req_get)
+ result = """curl -H 'header:qvalue' -H 'content-length:7' 'http://address/path'"""
+ assert flow_export.curl_command(flow) == result
+
+ flow = tutils.tflow(req=req_post)
+ result = """curl -X POST 'http://address/path' --data-binary 'content'"""
+ assert flow_export.curl_command(flow) == result
+
+ flow = tutils.tflow(req=req_patch)
+ result = """curl -H 'header:qvalue' -H 'content-length:7' -X PATCH 'http://address/path?query=param' --data-binary 'content'"""
+ assert flow_export.curl_command(flow) == result
+
+
+def test_python_code():
+ flow = tutils.tflow(req=req_get)
+ result = ("""import requests\n\n"""
+ """url = 'http://address/path'\n\n"""
+ """headers = {\n"""
+ """ 'header': 'qvalue',\n"""
+ """ 'content-length': '7',\n"""
+ """}\n\n"""
+ """response = requests.request(\n"""
+ """ method='GET',\n"""
+ """ url=url,\n"""
+ """ headers=headers,\n"""
+ """)\n\n"""
+ """print(response.text)""")
+ assert flow_export.python_code(flow) == result
+
+ flow = tutils.tflow(req=req_post)
+ result = ("""import requests\n\n"""
+ """url = 'http://address/path'\n\n"""
+ """data = '''content'''\n\n"""
+ """response = requests.request(\n"""
+ """ method='POST',\n"""
+ """ url=url,\n"""
+ """ data=data,\n)\n\n"""
+ """print(response.text)""")
+ assert flow_export.python_code(flow) == result
+
+ flow = tutils.tflow(req=req_patch)
+ result = ("""import requests\n\n"""
+ """url = 'http://address/path'\n\n"""
+ """headers = {\n"""
+ """ 'header': 'qvalue',\n"""
+ """ 'content-length': '7',\n"""
+ """}\n\n"""
+ """params = {\n"""
+ """ 'query': 'param',\n"""
+ """}\n\n"""
+ """data = '''content'''\n\n"""
+ """response = requests.request(\n"""
+ """ method='PATCH',\n"""
+ """ url=url,\n"""
+ """ headers=headers,\n"""
+ """ params=params,\n"""
+ """ data=data,\n"""
+ """)\n\n"""
+ """print(response.text)""")
+ assert flow_export.python_code(flow) == result
+
+
+def test_raw_request():
+ flow = tutils.tflow(req=req_get)
+ result = ("""GET /path HTTP/1.1\r\n"""
+ """header: qvalue\r\n"""
+ """content-length: 7\r\n"""
+ """host: address:22\r\n\r\n"""
+ """""")
+ assert flow_export.raw_request(flow) == result
+
+ flow = tutils.tflow(req=req_post)
+ result = ("""POST /path HTTP/1.1\r\n"""
+ """host: address:22\r\n\r\n"""
+ """content""")
+ assert flow_export.raw_request(flow) == result
+
+ flow = tutils.tflow(req=req_patch)
+ result = ("""PATCH /path?query=param HTTP/1.1\r\n"""
+ """header: qvalue\r\n"""
+ """content-length: 7\r\n"""
+ """host: address:22\r\n\r\n"""
+ """content""")
+ assert flow_export.raw_request(flow) == result