Skip to main content

The library to help test your HTTP requests using unittests

Project description

Requests-Asserts

CircleCI Coverage Status PyPI version PyPI - License PyPI - Python Version PyPI - Status

The decorator and context manager to mock and verify HTTP requests made by requests library for unittest.

How to install

pip install requests-asserts

How to use

Make a list of RequestMock elements that contain all information about the expected request and response. Use RequestMock.assert_requests(request_mocks) with the list as a decorator or context manager.

Example

import requests
from unittests import TestCase 

def get_likes_on_post(username, password, post_id):
    access_token = requests.post(
        'http://my.site/login',
        json={'username': username, 'password': password}
    ).json()['access_token']

    likes = requests.get(
        f'http://my.site/posts/{post_id}',
        headers={
            'Accept': 'application/json', 
            'Authorization': f'Bearer {access_token}'
        }
    ).json()['likes']

    return likes

class TestGetLikesOnPost(TestCase):
    @RequestMock.assert_requests([
        RequestMock(
            request_url='http://my.site/login',
            request_json={'username': 'the name', 'password': 'the password'},
            request_method=RequestMock.Method.POST,
            response_json={"access_token": 'the-token'}
        ),
        RequestMock(
            request_url='http://my.site/posts/3',
            request_headers_contains={'Authorization': 'Bearer the-token'},
            response_json={'name': 'The cool story', 'likes': 42}
        )
    ])
    def test_get_likes_on_post(self):
        self.assertEqual(42, get_likes_on_post('the name', 'the password', 3))

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

requests-asserts-0.1.3.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

requests_asserts-0.1.3-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file requests-asserts-0.1.3.tar.gz.

File metadata

  • Download URL: requests-asserts-0.1.3.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.6.14 Linux/4.15.0-1106-aws

File hashes

Hashes for requests-asserts-0.1.3.tar.gz
Algorithm Hash digest
SHA256 9905605c6c4f23ae36a8882836506bb7fb55c2c43414a7524b68e5a24b9e0841
MD5 c2641dc1808354e25b31a0acea395db0
BLAKE2b-256 118a3485cd37e9218d477e505b4b8da8463249b7fa310b206606670f900af632

See more details on using hashes here.

File details

Details for the file requests_asserts-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: requests_asserts-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.6.14 Linux/4.15.0-1106-aws

File hashes

Hashes for requests_asserts-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 24db52fc09f4185e3a95535c6e24f682f071cb253b034534ab3f757506c751d2
MD5 76918fac135ca2e285b0a59667630dc9
BLAKE2b-256 20d5c418381bb4ec5fc7745e1ceab9130cc893917e0b553c83f4ac67752d95a9

See more details on using hashes here.

Supported by

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