Requestions is a serialization library for Requests using JSON. Also, requestions includes a decorator called httpetrified for storing responses and replaying them in the future for HTTP testing without the live interwebz.
Simple.
sudo pip install requestions
or,
sudo python setup.py install
# responses
original_response = requests.get("http://httpbin.org/get")
serialized_response = requestions.write_response(original_response)
response = requestions.read_response(serialized_response)
# requests
original_request = requests.models.Request(url="http://httpbin.org/post", method="POST")
serialized_request = requestions.write_request(original_request)
request = requestions.read_request(serialized_request)
Save responses in a json file, then use them later to make unit testing not so miserable.
import json
import requests
from requestions import httpetrified
def get_current_ip_address(self):
"Abuses some poor sap's ip address detection service."
response = requests.get("http://jsonip.com")
return response.json()["ip"]
@httpetrified("samples/helpers/jsonip-request.json")
def test_get_current_ip_address(self):
self.assertEqual("127.0.0.1", get_current_ip_address())
support multiple requests/responses in a single json file. This will allow a single test to cause multiple requests to be made that can all be mocked simultaneously.
support streaming http responses like HTTPretty does
BSD.