Skip to main content

A library for mocking requests in Tornado HTTP client

Project description

## tornado-httpclient-mock
A library for mocking requests in Tornado HTTP client

[![Build Status](https://travis-ci.org/SuminAndrew/tornado-httpclient-mock.svg?branch=master)](https://travis-ci.org/SuminAndrew/tornado-httpclient-mock)
[![codecov](https://codecov.io/gh/SuminAndrew/tornado-httpclient-mock/branch/master/graph/badge.svg)](https://codecov.io/gh/SuminAndrew/tornado-httpclient-mock)

This library can be used to patch `AsyncHTTPClient.fetch_impl` method to stub requests to external resources.

`tornado_mock.httpclient.patch_http_client` does this patching on `AsyncHTTPClient` instance.
After that you can use `tornado_mock.httpclient.set_stub` method to setup an appropriate responses to the requests.

```python
from tornado import gen
from tornado.httpclient import AsyncHTTPClient
from tornado.testing import AsyncHTTPTestCase
from tornado.web import Application, RequestHandler

from tornado_mock.httpclient import get_response_stub, patch_http_client, set_stub


class TestHandler(RequestHandler):
@gen.coroutine
def get(self, *args, **kwargs):
response1 = yield self.application.http_client.fetch('http://example.com/path?query')
self.write(response1.body)

response2 = yield self.application.http_client.fetch('http://test.com/path')
self.finish(response2.body)


class HTTPClientMockTest(AsyncHTTPTestCase):
def get_app(self):
app = Application([('/test', TestHandler)])
self.app_http_client = app.http_client = AsyncHTTPClient(force_instance=True)
return app

def test_mock(self):
patch_http_client(self.app_http_client)

def get_response(request):
return get_response_stub(request, buffer='STUB2')

set_stub(self.app_http_client, 'http://example.com/path', response_body='STUB1')
set_stub(self.app_http_client, 'http://test.com/path', response_function=get_response)

self.assertEqual(self.fetch('/test').body, b'STUB1STUB2')
```

For more information see docstrings in [httpclient.py](tornado_mock/httpclient.py).


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tornado-httpclient-mock-0.2.3.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tornado_httpclient_mock-0.2.3-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file tornado-httpclient-mock-0.2.3.tar.gz.

File metadata

  • Download URL: tornado-httpclient-mock-0.2.3.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.12

File hashes

Hashes for tornado-httpclient-mock-0.2.3.tar.gz
Algorithm Hash digest
SHA256 46ceecdf46a60ed6dad3ae74453cb28892ac814fcf6e1852cc2d1aca67d079a4
MD5 04128a0960b8445f1ea02fe87c27fbfc
BLAKE2b-256 2b70884e2d3565874c8e075dd763258481379173f9bccf90967af6f14e7d66e6

See more details on using hashes here.

File details

Details for the file tornado_httpclient_mock-0.2.3-py2.py3-none-any.whl.

File metadata

  • Download URL: tornado_httpclient_mock-0.2.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.12

File hashes

Hashes for tornado_httpclient_mock-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 79ccebe5ddfbd62749b45657204de1adcbba0492561841778a3f658ffa467d14
MD5 74778aa7c8ddd0c7cb88b55e7f3fe879
BLAKE2b-256 48beb95d6bb2f352eff644f498c33b6dd132e2ca7e3cc30d94cd2e749d3e89ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page