2016-02-08 15:58:10 +00:00
|
|
|
import netlib.tutils
|
|
|
|
from libmproxy import flow_export
|
|
|
|
from . import tutils
|
|
|
|
|
|
|
|
req_get = netlib.tutils.treq(
|
|
|
|
method='GET',
|
2016-02-08 17:36:47 +00:00
|
|
|
content='',
|
2016-02-08 15:58:10 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
req_post = netlib.tutils.treq(
|
|
|
|
method='POST',
|
|
|
|
headers=None,
|
|
|
|
)
|
|
|
|
|
2016-02-08 16:25:07 +00:00
|
|
|
req_patch = netlib.tutils.treq(
|
|
|
|
method='PATCH',
|
|
|
|
path=b"/path?query=param",
|
|
|
|
)
|
|
|
|
|
2016-02-08 15:58:10 +00:00
|
|
|
|
2016-02-08 16:25:07 +00:00
|
|
|
def test_curl_command():
|
2016-02-08 15:58:10 +00:00
|
|
|
flow = tutils.tflow(req=req_get)
|
2016-02-08 16:25:07 +00:00
|
|
|
result = """curl -H 'header:qvalue' 'http://address/path'"""
|
|
|
|
assert flow_export.curl_command(flow) == result
|
2016-02-08 15:58:10 +00:00
|
|
|
|
|
|
|
flow = tutils.tflow(req=req_post)
|
2016-02-08 16:25:07 +00:00
|
|
|
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' -X PATCH 'http://address/path?query=param' --data-binary 'content'"""
|
|
|
|
assert flow_export.curl_command(flow) == result
|
|
|
|
|
2016-02-08 16:26:43 +00:00
|
|
|
|
|
|
|
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"""
|
|
|
|
"""}\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"""
|
|
|
|
"""}\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
|
2016-02-08 17:36:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_raw_request():
|
|
|
|
flow = tutils.tflow(req=req_get)
|
|
|
|
result = ("""GET /path HTTP/1.1\r\n"""
|
|
|
|
"""header: qvalue\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"""
|
|
|
|
"""host: address:22\r\n\r\n"""
|
|
|
|
"""content""")
|
|
|
|
assert flow_export.raw_request(flow) == result
|