%global _empty_manifest_terminate_build 0 Name: python-pytest-socket Version: 0.6.0 Release: 1 Summary: Pytest Plugin to disable socket calls during tests License: MIT URL: https://pypi.org/project/pytest-socket/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/03/be/908339cd5734b4fc2e12c8f2c30b1d0d2e032db8e85807028cea4ec15229/pytest_socket-0.6.0.tar.gz BuildArch: noarch Requires: python3-pytest %description ## Features - Disables all network calls flowing through Python\'s `socket` interface. ## Requirements - [Pytest](https://github.com/pytest-dev/pytest) 3.6.3 or greater ## Installation You can install `pytest-socket` via [pip](https://pypi.python.org/pypi/pip/) from [PyPI](https://pypi.python.org/pypi): ```console $ pip install pytest-socket ``` or add to your `pyproject.toml` for [poetry](https://python-poetry.org/): ```ini [tool.poetry.dev-dependencies] 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`](https://docs.pytest.org/en/6.2.x/customize.html#pytest-ini): ```ini [pytest] addopts = --disable-socket ``` or add this to your [`setup.cfg`](https://docs.pytest.org/en/6.2.x/customize.html#setup-cfg): ```ini [tool:pytest] addopts = --disable-socket ``` or update your [`conftest.py`](https://docs.pytest.org/en/6.2.x/writing_plugins.html#conftest-py-plugins) to include: ```python from pytest_socket import disable_socket def pytest_runtest_setup(): disable_socket() ``` To enable Unix sockets during the test run (e.g. for async), add this option: ```ini [pytest] addopts = --disable-socket --allow-unix-socket ``` To enable specific tests use of `socket`, pass in the fixture to the test or use a marker: ```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: ```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 ```ini [pytest] addopts = --allow-hosts=127.0.0.1,127.0.1.1 ``` ### Frequently Asked Questions Q: Why is network access disabled in some of my tests but not others? A: pytest's default fixture scope is "function", which `socket_enabled` uses. If you create another fixture that creates a socket usage that has a "higher" instantiation order, such as at the module/class/session, then the higher order fixture will be resolved first, and won't be disabled during the tests. Read more in [this excellent example](https://github.com/miketheman/pytest-socket/issues/45#issue-679835420) and more about [pytest fixture order here](https://docs.pytest.org/en/stable/fixture.html#fixture-instantiation-order). This behavior may change in the future, as we learn more about pytest fixture order, and what users expect to happen. ## Contributing Contributions are very welcome. Tests can be run with [pytest](https://github.com/pytest-dev/pytest), please ensure the coverage at least stays the same before you submit a pull request. ## License Distributed under the terms of the [MIT](http://opensource.org/licenses/MIT) license, "pytest-socket" is free and open source software [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket?ref=badge_large) ## Issues If you encounter any problems, please [file an issue](https://github.com/miketheman/pytest-socket/issues) along with a detailed description. ## References This [Pytest](https://github.com/pytest-dev/pytest) plugin was generated with [Cookiecutter](https://github.com/audreyr/cookiecutter) along with [\@hackebrot](https://github.com/hackebrot)\'s [Cookiecutter-pytest-plugin](https://github.com/pytest-dev/cookiecutter-pytest-plugin) template. This plugin came about due to the efforts by [\@hangtwenty](https://github.com/hangtwenty) solving a [StackOverflow question](https://stackoverflow.com/a/30064664), then converted into a pytest plugin by [\@miketheman](https://github.com/miketheman). %package -n python3-pytest-socket Summary: Pytest Plugin to disable socket calls during tests Provides: python-pytest-socket BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pytest-socket ## Features - Disables all network calls flowing through Python\'s `socket` interface. ## Requirements - [Pytest](https://github.com/pytest-dev/pytest) 3.6.3 or greater ## Installation You can install `pytest-socket` via [pip](https://pypi.python.org/pypi/pip/) from [PyPI](https://pypi.python.org/pypi): ```console $ pip install pytest-socket ``` or add to your `pyproject.toml` for [poetry](https://python-poetry.org/): ```ini [tool.poetry.dev-dependencies] 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`](https://docs.pytest.org/en/6.2.x/customize.html#pytest-ini): ```ini [pytest] addopts = --disable-socket ``` or add this to your [`setup.cfg`](https://docs.pytest.org/en/6.2.x/customize.html#setup-cfg): ```ini [tool:pytest] addopts = --disable-socket ``` or update your [`conftest.py`](https://docs.pytest.org/en/6.2.x/writing_plugins.html#conftest-py-plugins) to include: ```python from pytest_socket import disable_socket def pytest_runtest_setup(): disable_socket() ``` To enable Unix sockets during the test run (e.g. for async), add this option: ```ini [pytest] addopts = --disable-socket --allow-unix-socket ``` To enable specific tests use of `socket`, pass in the fixture to the test or use a marker: ```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: ```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 ```ini [pytest] addopts = --allow-hosts=127.0.0.1,127.0.1.1 ``` ### Frequently Asked Questions Q: Why is network access disabled in some of my tests but not others? A: pytest's default fixture scope is "function", which `socket_enabled` uses. If you create another fixture that creates a socket usage that has a "higher" instantiation order, such as at the module/class/session, then the higher order fixture will be resolved first, and won't be disabled during the tests. Read more in [this excellent example](https://github.com/miketheman/pytest-socket/issues/45#issue-679835420) and more about [pytest fixture order here](https://docs.pytest.org/en/stable/fixture.html#fixture-instantiation-order). This behavior may change in the future, as we learn more about pytest fixture order, and what users expect to happen. ## Contributing Contributions are very welcome. Tests can be run with [pytest](https://github.com/pytest-dev/pytest), please ensure the coverage at least stays the same before you submit a pull request. ## License Distributed under the terms of the [MIT](http://opensource.org/licenses/MIT) license, "pytest-socket" is free and open source software [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket?ref=badge_large) ## Issues If you encounter any problems, please [file an issue](https://github.com/miketheman/pytest-socket/issues) along with a detailed description. ## References This [Pytest](https://github.com/pytest-dev/pytest) plugin was generated with [Cookiecutter](https://github.com/audreyr/cookiecutter) along with [\@hackebrot](https://github.com/hackebrot)\'s [Cookiecutter-pytest-plugin](https://github.com/pytest-dev/cookiecutter-pytest-plugin) template. This plugin came about due to the efforts by [\@hangtwenty](https://github.com/hangtwenty) solving a [StackOverflow question](https://stackoverflow.com/a/30064664), then converted into a pytest plugin by [\@miketheman](https://github.com/miketheman). %package help Summary: Development documents and examples for pytest-socket Provides: python3-pytest-socket-doc %description help ## Features - Disables all network calls flowing through Python\'s `socket` interface. ## Requirements - [Pytest](https://github.com/pytest-dev/pytest) 3.6.3 or greater ## Installation You can install `pytest-socket` via [pip](https://pypi.python.org/pypi/pip/) from [PyPI](https://pypi.python.org/pypi): ```console $ pip install pytest-socket ``` or add to your `pyproject.toml` for [poetry](https://python-poetry.org/): ```ini [tool.poetry.dev-dependencies] 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`](https://docs.pytest.org/en/6.2.x/customize.html#pytest-ini): ```ini [pytest] addopts = --disable-socket ``` or add this to your [`setup.cfg`](https://docs.pytest.org/en/6.2.x/customize.html#setup-cfg): ```ini [tool:pytest] addopts = --disable-socket ``` or update your [`conftest.py`](https://docs.pytest.org/en/6.2.x/writing_plugins.html#conftest-py-plugins) to include: ```python from pytest_socket import disable_socket def pytest_runtest_setup(): disable_socket() ``` To enable Unix sockets during the test run (e.g. for async), add this option: ```ini [pytest] addopts = --disable-socket --allow-unix-socket ``` To enable specific tests use of `socket`, pass in the fixture to the test or use a marker: ```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: ```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 ```ini [pytest] addopts = --allow-hosts=127.0.0.1,127.0.1.1 ``` ### Frequently Asked Questions Q: Why is network access disabled in some of my tests but not others? A: pytest's default fixture scope is "function", which `socket_enabled` uses. If you create another fixture that creates a socket usage that has a "higher" instantiation order, such as at the module/class/session, then the higher order fixture will be resolved first, and won't be disabled during the tests. Read more in [this excellent example](https://github.com/miketheman/pytest-socket/issues/45#issue-679835420) and more about [pytest fixture order here](https://docs.pytest.org/en/stable/fixture.html#fixture-instantiation-order). This behavior may change in the future, as we learn more about pytest fixture order, and what users expect to happen. ## Contributing Contributions are very welcome. Tests can be run with [pytest](https://github.com/pytest-dev/pytest), please ensure the coverage at least stays the same before you submit a pull request. ## License Distributed under the terms of the [MIT](http://opensource.org/licenses/MIT) license, "pytest-socket" is free and open source software [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmiketheman%2Fpytest-socket?ref=badge_large) ## Issues If you encounter any problems, please [file an issue](https://github.com/miketheman/pytest-socket/issues) along with a detailed description. ## References This [Pytest](https://github.com/pytest-dev/pytest) plugin was generated with [Cookiecutter](https://github.com/audreyr/cookiecutter) along with [\@hackebrot](https://github.com/hackebrot)\'s [Cookiecutter-pytest-plugin](https://github.com/pytest-dev/cookiecutter-pytest-plugin) template. This plugin came about due to the efforts by [\@hangtwenty](https://github.com/hangtwenty) solving a [StackOverflow question](https://stackoverflow.com/a/30064664), then converted into a pytest plugin by [\@miketheman](https://github.com/miketheman). %prep %autosetup -n pytest-socket-0.6.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pytest-socket -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 21 2023 Python_Bot - 0.6.0-1 - Package Spec generated