diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-10 04:01:17 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 04:01:17 +0000 |
| commit | 126737cbaaf0084d215c0df4ad3fb936018d668e (patch) | |
| tree | 86566b5ff852e32395c3519208d96f3395a702e8 | |
| parent | 42e921a6254e62ce5a1b51b055f6de0d82b519ff (diff) | |
automatic import of python-mbtestopeneuler20.03
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-mbtest.spec | 475 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 477 insertions, 0 deletions
@@ -0,0 +1 @@ +/mbtest-2.11.0.tar.gz diff --git a/python-mbtest.spec b/python-mbtest.spec new file mode 100644 index 0000000..3b583f0 --- /dev/null +++ b/python-mbtest.spec @@ -0,0 +1,475 @@ +%global _empty_manifest_terminate_build 0 +Name: python-mbtest +Version: 2.11.0 +Release: 1 +Summary: Python wrapper & utils for the Mountebank over the wire test double tool. +License: MIT License +URL: https://github.com/brunns/mbtest/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a1/18/25e73126c5cb52f72280303f89c142222cdd8219ee19a1bab90ad760b36d/mbtest-2.11.0.tar.gz +BuildArch: noarch + +Requires: python3-requests +Requires: python3-furl +Requires: python3-pyhamcrest +Requires: python3-Deprecated +Requires: python3-brunns-matchers +Requires: python3-imurl +Requires: python3-pytest-cov +Requires: python3-codacy-coverage +Requires: python3-sphinx +Requires: python3-sphinx-autodoc-typehints +Requires: python3-pytest +Requires: python3-furo +Requires: python3-requests +Requires: python3-furl +Requires: python3-pyhamcrest +Requires: python3-Deprecated +Requires: python3-brunns-matchers +Requires: python3-imurl +Requires: python3-pytest +Requires: python3-contexttimer +Requires: python3-brunns-builder +Requires: python3-trustme + +%description +# mbtest + +Opinionated Python wrapper & utils for the [Mountebank](https://www.mbtest.org/) over the wire test double tool. + +Includes [pytest](https://pytest.org) fixture and [PyHamcrest](https://pyhamcrest.readthedocs.io) matchers. + +[](https://www.python.org/) +[](https://github.com/brunns/mbtest/actions) +[](https://pypi.org/project/mbtest/) +[](https://github.com/brunns/mbtest/blob/master/LICENSE) +[](https://github.com/brunns/mbtest/releases/) +[](https://github.com/brunns/mbtest/network/members) +[](https://github.com/brunns/mbtest/stargazers/) +[](https://github.com/brunns/mbtest/watchers/) +[](https://github.com/brunns/mbtest/graphs/contributors/) +[](https://github.com/brunns/mbtest/issues/) +[](https://github.com/brunns/mbtest/issues?q=is%3Aissue+is%3Aclosed) +[](https://github.com/brunns/mbtest/pulls) +[](https://github.com/brunns/mbtest/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed) +[](https://www.codacy.com/app/brunns/mbtest) +[](https://www.codacy.com/app/brunns/mbtest) +[](https://mbtest.readthedocs.io/en/latest/?badge=latest) +[](https://github.com/brunns/mbtest) + + +## Setup + +Install with pip: + + pip install mbtest + +(As usual, use of a [venv](https://docs.python.org/3/library/venv.html) or [virtualenv](https://virtualenv.pypa.io) is recommended.) Also requires [Mountebank](http://www.mbtest.org/) to have been installed: + + npm install mountebank@2.8 --omit=dev + +(Alternatively, you can attach to an instance of Mountebank running elsewhere, perhaps [in docker](https://mbtest.readthedocs.io/en/latest/guide/docker.html).) + +## Basic example + +```python +import requests +from hamcrest import assert_that +from brunns.matchers.response import is_response +from mbtest.matchers import had_request +from mbtest.imposters import Imposter, Predicate, Response, Stub + +def test_request_to_mock_server(mock_server): + # Set up mock server with required behavior + imposter = Imposter(Stub(Predicate(path="/test"), + Response(body="sausages"))) + + with mock_server(imposter): + # Make request to mock server - exercise code under test here + response = requests.get(f"{imposter.url}/test") + + assert_that("We got the expected response", + response, is_response().with_status_code(200).and_body("sausages")) + assert_that("The mock server recorded the request", + imposter, had_request().with_path("/test").and_method("GET")) +``` + +Needs a [pytest fixture](https://docs.pytest.org/en/latest/fixture.html), most easily defined in [`conftest.py`](https://docs.pytest.org/en/latest/how-to/fixtures.html#scope-sharing-fixtures-across-classes-modules-packages-or-session): + +```python +import pytest +from mbtest import server + +@pytest.fixture(scope="session") +def mock_server(request): + return server.mock_server(request) +``` + +This will take care of starting and stopping the Mountebank server for you. Examples of more complex predicates can be +found in the [integration tests](https://github.com/brunns/mbtest/tree/master/tests/integration/). + +See the [Documentation](https://mbtest.readthedocs.io/) for more. + + +## Contributing + +Requires [make](https://www.gnu.org/software/make/manual/html_node/index.html) and [tox](https://tox.readthedocs.io). +[PyEnv](https://github.com/pyenv/pyenv) may also come in handy so tests can be run against various Python versions. + +Integration tests run against an instance of Mountebank running in Docker. + +Currently, the `Makefile` targets use Python 3.8 and 3.11 via tox, so a quick-start setup could be: + +```sh +brew install pyenv colima docker +versions=(3.7 3.11) +for v in "${versions[@]}"; do pyenv install $v -s; done +pyenv local 3.11 3.7 +pip install tox tox-pyenv +colima start +``` + +In order to run `make test`, you'll also need to have Mountebank installed locally: + +```sh +npm install mountebank@2.6 --production +``` + +(`mbtest` is tested against Mountebank versions back as far as 1.16, but obviously only features supported by the Mountebank version you're using will work.) + +After that, you should be ready to roll; running `make test` will let you know if your setup is correct. + +Running `make precommit` tells you if you're OK to commit. For more options, run: + + make help + +## Releasing + +Requires [hub](https://hub.github.com/), [setuptools](https://setuptools.readthedocs.io), +[wheel](https://github.com/pypa/wheel) and [twine](https://twine.readthedocs.io). To release version `n.n.n`, first +update the version number in `setup.py`, then: + +```sh +version="n.n.n" # Needs to match new version number in setup.py. +git checkout -b "release-$version" +make precommit && git commit -am"Release $version" && git push --set-upstream origin "release-$version" # If not already all pushed, which it should be. +hub release create "V$version" -t"release-$version" -m"Version $version" +python setup.py sdist bdist_wheel +twine upload dist/*$version* +git checkout master +git merge "release-$version" +git push +``` + + +%package -n python3-mbtest +Summary: Python wrapper & utils for the Mountebank over the wire test double tool. +Provides: python-mbtest +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-mbtest +# mbtest + +Opinionated Python wrapper & utils for the [Mountebank](https://www.mbtest.org/) over the wire test double tool. + +Includes [pytest](https://pytest.org) fixture and [PyHamcrest](https://pyhamcrest.readthedocs.io) matchers. + +[](https://www.python.org/) +[](https://github.com/brunns/mbtest/actions) +[](https://pypi.org/project/mbtest/) +[](https://github.com/brunns/mbtest/blob/master/LICENSE) +[](https://github.com/brunns/mbtest/releases/) +[](https://github.com/brunns/mbtest/network/members) +[](https://github.com/brunns/mbtest/stargazers/) +[](https://github.com/brunns/mbtest/watchers/) +[](https://github.com/brunns/mbtest/graphs/contributors/) +[](https://github.com/brunns/mbtest/issues/) +[](https://github.com/brunns/mbtest/issues?q=is%3Aissue+is%3Aclosed) +[](https://github.com/brunns/mbtest/pulls) +[](https://github.com/brunns/mbtest/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed) +[](https://www.codacy.com/app/brunns/mbtest) +[](https://www.codacy.com/app/brunns/mbtest) +[](https://mbtest.readthedocs.io/en/latest/?badge=latest) +[](https://github.com/brunns/mbtest) + + +## Setup + +Install with pip: + + pip install mbtest + +(As usual, use of a [venv](https://docs.python.org/3/library/venv.html) or [virtualenv](https://virtualenv.pypa.io) is recommended.) Also requires [Mountebank](http://www.mbtest.org/) to have been installed: + + npm install mountebank@2.8 --omit=dev + +(Alternatively, you can attach to an instance of Mountebank running elsewhere, perhaps [in docker](https://mbtest.readthedocs.io/en/latest/guide/docker.html).) + +## Basic example + +```python +import requests +from hamcrest import assert_that +from brunns.matchers.response import is_response +from mbtest.matchers import had_request +from mbtest.imposters import Imposter, Predicate, Response, Stub + +def test_request_to_mock_server(mock_server): + # Set up mock server with required behavior + imposter = Imposter(Stub(Predicate(path="/test"), + Response(body="sausages"))) + + with mock_server(imposter): + # Make request to mock server - exercise code under test here + response = requests.get(f"{imposter.url}/test") + + assert_that("We got the expected response", + response, is_response().with_status_code(200).and_body("sausages")) + assert_that("The mock server recorded the request", + imposter, had_request().with_path("/test").and_method("GET")) +``` + +Needs a [pytest fixture](https://docs.pytest.org/en/latest/fixture.html), most easily defined in [`conftest.py`](https://docs.pytest.org/en/latest/how-to/fixtures.html#scope-sharing-fixtures-across-classes-modules-packages-or-session): + +```python +import pytest +from mbtest import server + +@pytest.fixture(scope="session") +def mock_server(request): + return server.mock_server(request) +``` + +This will take care of starting and stopping the Mountebank server for you. Examples of more complex predicates can be +found in the [integration tests](https://github.com/brunns/mbtest/tree/master/tests/integration/). + +See the [Documentation](https://mbtest.readthedocs.io/) for more. + + +## Contributing + +Requires [make](https://www.gnu.org/software/make/manual/html_node/index.html) and [tox](https://tox.readthedocs.io). +[PyEnv](https://github.com/pyenv/pyenv) may also come in handy so tests can be run against various Python versions. + +Integration tests run against an instance of Mountebank running in Docker. + +Currently, the `Makefile` targets use Python 3.8 and 3.11 via tox, so a quick-start setup could be: + +```sh +brew install pyenv colima docker +versions=(3.7 3.11) +for v in "${versions[@]}"; do pyenv install $v -s; done +pyenv local 3.11 3.7 +pip install tox tox-pyenv +colima start +``` + +In order to run `make test`, you'll also need to have Mountebank installed locally: + +```sh +npm install mountebank@2.6 --production +``` + +(`mbtest` is tested against Mountebank versions back as far as 1.16, but obviously only features supported by the Mountebank version you're using will work.) + +After that, you should be ready to roll; running `make test` will let you know if your setup is correct. + +Running `make precommit` tells you if you're OK to commit. For more options, run: + + make help + +## Releasing + +Requires [hub](https://hub.github.com/), [setuptools](https://setuptools.readthedocs.io), +[wheel](https://github.com/pypa/wheel) and [twine](https://twine.readthedocs.io). To release version `n.n.n`, first +update the version number in `setup.py`, then: + +```sh +version="n.n.n" # Needs to match new version number in setup.py. +git checkout -b "release-$version" +make precommit && git commit -am"Release $version" && git push --set-upstream origin "release-$version" # If not already all pushed, which it should be. +hub release create "V$version" -t"release-$version" -m"Version $version" +python setup.py sdist bdist_wheel +twine upload dist/*$version* +git checkout master +git merge "release-$version" +git push +``` + + +%package help +Summary: Development documents and examples for mbtest +Provides: python3-mbtest-doc +%description help +# mbtest + +Opinionated Python wrapper & utils for the [Mountebank](https://www.mbtest.org/) over the wire test double tool. + +Includes [pytest](https://pytest.org) fixture and [PyHamcrest](https://pyhamcrest.readthedocs.io) matchers. + +[](https://www.python.org/) +[](https://github.com/brunns/mbtest/actions) +[](https://pypi.org/project/mbtest/) +[](https://github.com/brunns/mbtest/blob/master/LICENSE) +[](https://github.com/brunns/mbtest/releases/) +[](https://github.com/brunns/mbtest/network/members) +[](https://github.com/brunns/mbtest/stargazers/) +[](https://github.com/brunns/mbtest/watchers/) +[](https://github.com/brunns/mbtest/graphs/contributors/) +[](https://github.com/brunns/mbtest/issues/) +[](https://github.com/brunns/mbtest/issues?q=is%3Aissue+is%3Aclosed) +[](https://github.com/brunns/mbtest/pulls) +[](https://github.com/brunns/mbtest/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed) +[](https://www.codacy.com/app/brunns/mbtest) +[](https://www.codacy.com/app/brunns/mbtest) +[](https://mbtest.readthedocs.io/en/latest/?badge=latest) +[](https://github.com/brunns/mbtest) + + +## Setup + +Install with pip: + + pip install mbtest + +(As usual, use of a [venv](https://docs.python.org/3/library/venv.html) or [virtualenv](https://virtualenv.pypa.io) is recommended.) Also requires [Mountebank](http://www.mbtest.org/) to have been installed: + + npm install mountebank@2.8 --omit=dev + +(Alternatively, you can attach to an instance of Mountebank running elsewhere, perhaps [in docker](https://mbtest.readthedocs.io/en/latest/guide/docker.html).) + +## Basic example + +```python +import requests +from hamcrest import assert_that +from brunns.matchers.response import is_response +from mbtest.matchers import had_request +from mbtest.imposters import Imposter, Predicate, Response, Stub + +def test_request_to_mock_server(mock_server): + # Set up mock server with required behavior + imposter = Imposter(Stub(Predicate(path="/test"), + Response(body="sausages"))) + + with mock_server(imposter): + # Make request to mock server - exercise code under test here + response = requests.get(f"{imposter.url}/test") + + assert_that("We got the expected response", + response, is_response().with_status_code(200).and_body("sausages")) + assert_that("The mock server recorded the request", + imposter, had_request().with_path("/test").and_method("GET")) +``` + +Needs a [pytest fixture](https://docs.pytest.org/en/latest/fixture.html), most easily defined in [`conftest.py`](https://docs.pytest.org/en/latest/how-to/fixtures.html#scope-sharing-fixtures-across-classes-modules-packages-or-session): + +```python +import pytest +from mbtest import server + +@pytest.fixture(scope="session") +def mock_server(request): + return server.mock_server(request) +``` + +This will take care of starting and stopping the Mountebank server for you. Examples of more complex predicates can be +found in the [integration tests](https://github.com/brunns/mbtest/tree/master/tests/integration/). + +See the [Documentation](https://mbtest.readthedocs.io/) for more. + + +## Contributing + +Requires [make](https://www.gnu.org/software/make/manual/html_node/index.html) and [tox](https://tox.readthedocs.io). +[PyEnv](https://github.com/pyenv/pyenv) may also come in handy so tests can be run against various Python versions. + +Integration tests run against an instance of Mountebank running in Docker. + +Currently, the `Makefile` targets use Python 3.8 and 3.11 via tox, so a quick-start setup could be: + +```sh +brew install pyenv colima docker +versions=(3.7 3.11) +for v in "${versions[@]}"; do pyenv install $v -s; done +pyenv local 3.11 3.7 +pip install tox tox-pyenv +colima start +``` + +In order to run `make test`, you'll also need to have Mountebank installed locally: + +```sh +npm install mountebank@2.6 --production +``` + +(`mbtest` is tested against Mountebank versions back as far as 1.16, but obviously only features supported by the Mountebank version you're using will work.) + +After that, you should be ready to roll; running `make test` will let you know if your setup is correct. + +Running `make precommit` tells you if you're OK to commit. For more options, run: + + make help + +## Releasing + +Requires [hub](https://hub.github.com/), [setuptools](https://setuptools.readthedocs.io), +[wheel](https://github.com/pypa/wheel) and [twine](https://twine.readthedocs.io). To release version `n.n.n`, first +update the version number in `setup.py`, then: + +```sh +version="n.n.n" # Needs to match new version number in setup.py. +git checkout -b "release-$version" +make precommit && git commit -am"Release $version" && git push --set-upstream origin "release-$version" # If not already all pushed, which it should be. +hub release create "V$version" -t"release-$version" -m"Version $version" +python setup.py sdist bdist_wheel +twine upload dist/*$version* +git checkout master +git merge "release-$version" +git push +``` + + +%prep +%autosetup -n mbtest-2.11.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-mbtest -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 2.11.0-1 +- Package Spec generated @@ -0,0 +1 @@ +314dd963b816c533797108b5bcc05a65 mbtest-2.11.0.tar.gz |
