This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
webmock
=======

This tool provides an in-process WSGI server on an ephemeral port.
It is intended for use in unit tests, when the system under test makes outgoing HTTP connections that cannot easily be mocked.

Usage
-----

First, create a WSGI application that represents the fake web server you want to create.
This is simpler than it seems; for example::

def simple_app(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'text/plain')]
start_response(status, headers)
return ['Hello, world!\n']

Next, activate the test server.
There are several ways to do this, but all of them produce a port number.

As a context manager::

from mockweb import mock_server
def test_web_request():
with mock_server(simple_app) as port:
my_client.get_greeting('http://127.0.0.1:{}'.format(port))

As a decorator::

from mockweb import mock_server
@mock_server(simple_app)
def test_web_request(port):
my_client.get_greeting('http://127.0.0.1:{}'.format(port))

Or manually started and stopped::

from mockweb import mock_server
@mock_server
def test_web_request():
server = mock_server(simple_app)
# ...
server.start()
my_client.get_greeting('http://127.0.0.1:{}'.format(port))
server.stop()

In the latter case, be careful to stop the server.

Mock App
--------

The ``webmock`` package includes a simple WSGI app which behaves like the Python ``Mock``: it accepts and records any request, and allows tests to make assertions after the operation is complete.

Its usage is simple:

from mockweb import mock_server, MockApp

app = MockApp()
with mock_server(app):
# ..
app.assert_called_with('GET /foo/bar')

The assertion methods available are:

* ``assert_called_with(call)`` -- assert that the most recent request matches ``call``
* ``assert_called_once_with(call)`` -- assert that only one request was made and that it matches ``call``
* ``assert_any_call(call)`` -- assert that the any request matches ``call``
* ``assert_has_call([call, call, ..], any_order=False)`` -- assert that the given calls all occurred.
If ``any_order`` is false, the calls must be sequential.

A call can be described with a string containing the method and the path.

The mock app's behavior can be adjusted in some minor ways.
For anything more complex, build a custom WSGI app.

* ``MockApp(response='403 Forbidden')`` -- customize the HTTP response (default is "200 OK")
* ``MockApp(body='hello world\n')`` -- customize the response body (default is empty)
* ``MockApp(headers=[('X-Auth', 'abc123')])`` -- customize the response headers
Release History

Release History

1.1.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
webmock-1.1.0-py2.py3-none-any.whl (6.3 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Apr 22, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting