Metadata-Version: 2.1
Name: pytest-socket
Version: 0.3.5
Summary: Pytest Plugin to disable socket calls during tests
Home-page: UNKNOWN
Author: Mike Fiedler
Author-email: miketheman@gmail.com
License: MIT
Project-URL: homepage, https://pypi.org/project/pytest-socket/
Project-URL: repository, https://github.com/miketheman/pytest-socket
Description: =============
        pytest-socket
        =============
        
        .. image:: https://img.shields.io/pypi/v/pytest-socket.svg
            :target: https://pypi.python.org/pypi/pytest-socket
        
        .. image:: https://img.shields.io/pypi/pyversions/pytest-socket.svg
            :target: https://pypi.python.org/pypi/pytest-socket
        
        .. image:: https://github.com/miketheman/pytest-socket/workflows/Python%20Tests/badge.svg
            :target: https://github.com/miketheman/pytest-socket/actions?query=workflow%3A%22Python+Tests%22
            :alt: Python Tests
        
        .. image:: https://api.codeclimate.com/v1/badges/1608a75b1c3a20211992/maintainability
           :target: https://codeclimate.com/github/miketheman/pytest-socket/maintainability
           :alt: Maintainability
        
        .. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket.svg?type=shield
           :target: https://app.fossa.io/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket?ref=badge_shield
           :alt: FOSSA Status
        
        
        A plugin to use with Pytest to disable or restrict ``socket`` calls during tests to ensure network calls are prevented.
        
        ----
        
        This `Pytest`_ plugin was generated with `Cookiecutter`_ along with `@hackebrot`_'s `Cookiecutter-pytest-plugin`_ template.
        
        
        Features
        --------
        
        * Disables all network calls flowing through Python's ``socket`` interface.
        
        
        Requirements
        ------------
        
        * `Pytest`_ 3.6.3 or greater
        
        
        Installation
        ------------
        
        You can install "pytest-socket" via `pip`_ from `PyPI`_::
        
            $ pip install pytest-socket
        
        
        Usage
        -----
        
        * Run ``pytest --disable-socket``, tests should fail on any access to ``socket`` or libraries using
          socket with a ``SocketBlockedError``.
        
          To add this flag as the default behavior, add this section to your ``pytest.ini`` or ``setup.cfg``:
        
          .. code:: ini
        
            [pytest]
            addopts = --disable-socket
        
        
          or update your ``conftest.py`` to include:
        
          .. code:: python
        
            from pytest_socket import disable_socket
        
            def pytest_runtest_setup():
                disable_socket()
        
        
        * To enable specific tests use of ``socket``, pass in the fixture to the test or use a marker:
        
          .. code:: python
        
            def test_explicitly_enable_socket(socket_enabled):
                assert socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        
        
            @pytest.mark.enable_socket
            def test_explicitly_enable_socket_with_mark():
                assert socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        
        * To allow only specific hosts per-test:
        
          .. code:: python
        
            @pytest.mark.allow_hosts(['127.0.0.1'])
            def test_explicitly_enable_socket_with_mark():
                assert socket.socket.connect(('127.0.0.1', 80))
        
        or for whole test run
        
          .. code:: ini
        
            [pytest]
            addopts = --allow-hosts=127.0.0.1,127.0.1.1
        
        
        Contributing
        ------------
        Contributions are very welcome. Tests can be run with `pytest`_, 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-socket" is free and open source software
        
        .. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket.svg?type=large
           :target: https://app.fossa.io/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket?ref=badge_large
           :alt: FOSSA Status
        
        Issues
        ------
        
        If you encounter any problems, please `file an issue`_ along with a detailed description.
        
        
        References
        ----------
        
        This plugin came about due to the efforts by `@hangtwenty`_ solving a `StackOverflow question`_,
        then converted into a pytest plugin by `@miketheman`_.
        
        
        .. _`Cookiecutter`: https://github.com/audreyr/cookiecutter
        .. _`@hackebrot`: https://github.com/hackebrot
        .. _`MIT`: http://opensource.org/licenses/MIT
        .. _`cookiecutter-pytest-plugin`: https://github.com/pytest-dev/cookiecutter-pytest-plugin
        .. _`file an issue`: https://github.com/miketheman/pytest-socket/issues
        .. _`pytest`: https://github.com/pytest-dev/pytest
        .. _`tox`: https://tox.readthedocs.io/en/latest/
        .. _`pip`: https://pypi.python.org/pypi/pip/
        .. _`PyPI`: https://pypi.python.org/pypi
        .. _`@hangtwenty`: https://github.com/hangtwenty
        .. _`StackOverflow question`: https://stackoverflow.com/a/30064664
        .. _`@miketheman`: https://github.com/miketheman
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Testing
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Requires-Python: ==3.*,>=3.5.0
Provides-Extra: dev
