Socket
Socket
Sign inDemoInstall

pytest-mock-server

Package Overview
Dependencies
2
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    pytest-mock-server

Mock server plugin for pytest


Maintainers
1

Readme

================== pytest-mock-server

.. image:: https://img.shields.io/pypi/v/pytest-mock-server.svg :target: https://pypi.org/project/pytest-mock-server :alt: PyPI version

.. image:: https://img.shields.io/pypi/pyversions/pytest-mock-server.svg :target: https://pypi.org/project/pytest-mock-server :alt: Python versions

.. image:: https://travis-ci.org/AndreyErmilov/pytest-mock-server.svg?branch=master :target: https://travis-ci.org/AndreyErmilov/pytest-mock-server :alt: See Build Status on Travis CI

Mock server plugin for pytest


Installation

You can install "pytest-mock-server" via pip_ from PyPI_::

$ pip install pytest-mock-server

Usage

One handler

.. code-block:: python

  import pytest
  import requests

  @pytest.mark.server(url='/v1/books/', response=[{'id': 1}], method='GET')
  def test_handler_responses():
      response = requests.get('http://localhost:5000/v1/books/')
      assert response.status_code == 200
      assert response.json() == [{'id': 1}]


More than one handlers

.. code-block:: python

import pytest import requests

@pytest.mark.server(url='/v1/books/', response=[{'id': 1}], method='GET') @pytest.mark.server(url='/v1/books/<book_id>/', response={'id': 1}, method='GET') def test_handler_responses(): response = requests.get('http://localhost:5000/v1/books/') assert response.status_code == 200 assert response.json() == [{'id': 1}] response = requests.get('http://localhost:5000/v1/books/1/') assert response.status_code == 200 assert response.json() == {'id': 1}

Callback executes before response returns

.. code-block:: python

  import pytest
  import requests
  import time

  def sleep_two(*args, **kwargs):
      time.sleep(2)

  @pytest.mark.server(url='/v1/books/', response={}, callback=sleep_two)
  def test_handler_responses():
      """Ensures Timeouts works"""
      with pytest.raises(requests.exceptions.Timeout):
          response = requests.get('http://localhost:5000/v1/books/', timeout=1)

Custom settings for server

.. code-block:: python

import pytest import requests

@pytest.mark.server(url='/v1/books/', response={}) @pytest.mark.server_settings(port=8000) def test_handler_responses(): response = requests.get('http://localhost:8000/v1/books/') assert response.status_code == 200 assert response.json() == {}

Contributing

Contributions are very welcome. Tests can be run with tox_, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the MIT_ license, "pytest-mock-server" is free and open source software

Issues

If you encounter any problems, please file an issue_ along with a detailed description.

.. _MIT: http://opensource.org/licenses/MIT .. _file an issue: https://github.com/AndreyErmilov/pytest-mock-server/issues .. _tox: https://tox.readthedocs.io/en/latest/ .. _pip: https://pypi.org/project/pip/ .. _PyPI: https://pypi.org/project

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc