diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-10 13:35:03 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 13:35:03 +0000 |
| commit | 3cd0b26e4f1f0a60b9ff88c572aff48a92bc5ca5 (patch) | |
| tree | 257738649ec510a3fb3ec398cd4b8e17b87dda36 /python-pytest-check.spec | |
| parent | 4ec634317936feea4b972bdc908c40c9da0b9381 (diff) | |
automatic import of python-pytest-check
Diffstat (limited to 'python-pytest-check.spec')
| -rw-r--r-- | python-pytest-check.spec | 409 |
1 files changed, 409 insertions, 0 deletions
diff --git a/python-pytest-check.spec b/python-pytest-check.spec new file mode 100644 index 0000000..42ee387 --- /dev/null +++ b/python-pytest-check.spec @@ -0,0 +1,409 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pytest-check +Version: 2.1.4 +Release: 1 +Summary: A pytest plugin that allows multiple failures per test. +License: MIT License +URL: https://pypi.org/project/pytest-check/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a0/dc/a0eb5f6b939bef2730588d8dd1f2bcc96e4c032d98750c3126532c7d2c8d/pytest-check-2.1.4.tar.gz +BuildArch: noarch + +Requires: python3-pytest + +%description +Normally, a test function will fail and stop running with the first failed `assert`. +That's totally fine for tons of kinds of software tests. +However, there are times where you'd like to check more than one thing, and you'd really like to know the results of each check, even if one of them fails. +`pytest-check` allows multiple failed "checks" per test function, so you can see the whole picture of what's going wrong. +## Installation +From PyPI: +``` +$ pip install pytest-check +``` +From conda (conda-forge): +``` +$ conda install -c conda-forge pytest-check +``` +## Example +Quick example of where you might want multiple checks: +```python +import httpx +from pytest_check import check +def test_httpx_get(): + r = httpx.get('https://www.example.org/') + # bail if bad status code + assert r.status_code == 200 + # but if we get to here + # then check everything else without stopping + with check: + assert r.is_redirect is False + with check: + assert r.encoding == 'utf-8' + with check: + assert 'Example Domain' in r.text +``` +## Import vs fixture +The example above used import: `from pytest_check import check`. +You can also grab `check` as a fixture with no import: +```python +def test_httpx_get(check): + r = httpx.get('https://www.example.org/') + with check: + assert r.is_redirect == False +``` +## Validation functions +`check` also helper functions for common checks. +These methods do NOT need to be inside of a `with check:` block. +- **check.equal** - *a == b* +- **check.not_equal** - *a != b* +- **check.is_** - *a is b* +- **check.is_not** - *a is not b* +- **check.is_true** - *bool(x) is True* +- **check.is_false** - *bool(x) is False* +- **check.is_none** - *x is None* +- **check.is_not_none** - *x is not None* +- **check.is_in** - *a in b* +- **check.is_not_in** - *a not in b* +- **check.is_instance** - *isinstance(a, b)* +- **check.is_not_instance** - *not isinstance(a, b)* +- **check.almost_equal** - *a == pytest.approx(b, rel, abs)* see at: [pytest.approx](https://docs.pytest.org/en/latest/reference.html#pytest-approx) +- **check.not_almost_equal** - *a != pytest.approx(b, rel, abs)* see at: [pytest.approx](https://docs.pytest.org/en/latest/reference.html#pytest-approx) +- **check.greater** - *a > b* +- **check.greater_equal** - *a >= b* +- **check.less** - *a < b* +- **check.less_equal** - *a <= b* +- **check.between** - *a < b < c* +- **check.raises** - *func raises given exception* similar to [pytest.raises](https://docs.pytest.org/en/latest/reference/reference.html#pytest-raises) +The httpx example can be rewritten with helper functions: +```python +def test_httpx_get_with_helpers(): + r = httpx.get('https://www.example.org/') + assert r.status_code == 200 + check.is_false(r.is_redirect) + check.equal(r.encoding, 'utf-8') + check.is_in('Example Domain', r.text) +``` +Which you use is personal preference. +## Defining your own check functions +The `@check.check_func` decorator allows you to wrap any test helper that has an assert +statement in it to be a non-blocking assert function. +```python +from pytest_check import check +@check.check_func +def is_four(a): + assert a == 4 +def test_all_four(): + is_four(1) + is_four(2) + is_four(3) + is_four(4) +``` +## Using raises as a context manager +`raises` is used as context manager, much like `pytest.raises`. The main difference being that a failure to raise the right exception won't stop the execution of the test method. +```python +from pytest_check import check +def test_raises(): + with check.raises(AssertionError): + x = 3 + assert 1 < x < 4 +``` +## Pseudo-tracebacks +With `check`, tests can have multiple failures per test. +This would possibly make for extensive output if we include the full traceback for +every failure. +To make the output a little more concise, `pytest-check` implements a shorter version, which we call pseudo-tracebacks. +For example, take this test: +```python +def test_example(): + a = 1 + b = 2 + c = [2, 4, 6] + check.greater(a, b) + check.less_equal(b, a) + check.is_in(a, c, "Is 1 in the list") + check.is_not_in(b, c, "make sure 2 isn't in list") +``` +This will result in: + +%package -n python3-pytest-check +Summary: A pytest plugin that allows multiple failures per test. +Provides: python-pytest-check +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pytest-check +Normally, a test function will fail and stop running with the first failed `assert`. +That's totally fine for tons of kinds of software tests. +However, there are times where you'd like to check more than one thing, and you'd really like to know the results of each check, even if one of them fails. +`pytest-check` allows multiple failed "checks" per test function, so you can see the whole picture of what's going wrong. +## Installation +From PyPI: +``` +$ pip install pytest-check +``` +From conda (conda-forge): +``` +$ conda install -c conda-forge pytest-check +``` +## Example +Quick example of where you might want multiple checks: +```python +import httpx +from pytest_check import check +def test_httpx_get(): + r = httpx.get('https://www.example.org/') + # bail if bad status code + assert r.status_code == 200 + # but if we get to here + # then check everything else without stopping + with check: + assert r.is_redirect is False + with check: + assert r.encoding == 'utf-8' + with check: + assert 'Example Domain' in r.text +``` +## Import vs fixture +The example above used import: `from pytest_check import check`. +You can also grab `check` as a fixture with no import: +```python +def test_httpx_get(check): + r = httpx.get('https://www.example.org/') + with check: + assert r.is_redirect == False +``` +## Validation functions +`check` also helper functions for common checks. +These methods do NOT need to be inside of a `with check:` block. +- **check.equal** - *a == b* +- **check.not_equal** - *a != b* +- **check.is_** - *a is b* +- **check.is_not** - *a is not b* +- **check.is_true** - *bool(x) is True* +- **check.is_false** - *bool(x) is False* +- **check.is_none** - *x is None* +- **check.is_not_none** - *x is not None* +- **check.is_in** - *a in b* +- **check.is_not_in** - *a not in b* +- **check.is_instance** - *isinstance(a, b)* +- **check.is_not_instance** - *not isinstance(a, b)* +- **check.almost_equal** - *a == pytest.approx(b, rel, abs)* see at: [pytest.approx](https://docs.pytest.org/en/latest/reference.html#pytest-approx) +- **check.not_almost_equal** - *a != pytest.approx(b, rel, abs)* see at: [pytest.approx](https://docs.pytest.org/en/latest/reference.html#pytest-approx) +- **check.greater** - *a > b* +- **check.greater_equal** - *a >= b* +- **check.less** - *a < b* +- **check.less_equal** - *a <= b* +- **check.between** - *a < b < c* +- **check.raises** - *func raises given exception* similar to [pytest.raises](https://docs.pytest.org/en/latest/reference/reference.html#pytest-raises) +The httpx example can be rewritten with helper functions: +```python +def test_httpx_get_with_helpers(): + r = httpx.get('https://www.example.org/') + assert r.status_code == 200 + check.is_false(r.is_redirect) + check.equal(r.encoding, 'utf-8') + check.is_in('Example Domain', r.text) +``` +Which you use is personal preference. +## Defining your own check functions +The `@check.check_func` decorator allows you to wrap any test helper that has an assert +statement in it to be a non-blocking assert function. +```python +from pytest_check import check +@check.check_func +def is_four(a): + assert a == 4 +def test_all_four(): + is_four(1) + is_four(2) + is_four(3) + is_four(4) +``` +## Using raises as a context manager +`raises` is used as context manager, much like `pytest.raises`. The main difference being that a failure to raise the right exception won't stop the execution of the test method. +```python +from pytest_check import check +def test_raises(): + with check.raises(AssertionError): + x = 3 + assert 1 < x < 4 +``` +## Pseudo-tracebacks +With `check`, tests can have multiple failures per test. +This would possibly make for extensive output if we include the full traceback for +every failure. +To make the output a little more concise, `pytest-check` implements a shorter version, which we call pseudo-tracebacks. +For example, take this test: +```python +def test_example(): + a = 1 + b = 2 + c = [2, 4, 6] + check.greater(a, b) + check.less_equal(b, a) + check.is_in(a, c, "Is 1 in the list") + check.is_not_in(b, c, "make sure 2 isn't in list") +``` +This will result in: + +%package help +Summary: Development documents and examples for pytest-check +Provides: python3-pytest-check-doc +%description help +Normally, a test function will fail and stop running with the first failed `assert`. +That's totally fine for tons of kinds of software tests. +However, there are times where you'd like to check more than one thing, and you'd really like to know the results of each check, even if one of them fails. +`pytest-check` allows multiple failed "checks" per test function, so you can see the whole picture of what's going wrong. +## Installation +From PyPI: +``` +$ pip install pytest-check +``` +From conda (conda-forge): +``` +$ conda install -c conda-forge pytest-check +``` +## Example +Quick example of where you might want multiple checks: +```python +import httpx +from pytest_check import check +def test_httpx_get(): + r = httpx.get('https://www.example.org/') + # bail if bad status code + assert r.status_code == 200 + # but if we get to here + # then check everything else without stopping + with check: + assert r.is_redirect is False + with check: + assert r.encoding == 'utf-8' + with check: + assert 'Example Domain' in r.text +``` +## Import vs fixture +The example above used import: `from pytest_check import check`. +You can also grab `check` as a fixture with no import: +```python +def test_httpx_get(check): + r = httpx.get('https://www.example.org/') + with check: + assert r.is_redirect == False +``` +## Validation functions +`check` also helper functions for common checks. +These methods do NOT need to be inside of a `with check:` block. +- **check.equal** - *a == b* +- **check.not_equal** - *a != b* +- **check.is_** - *a is b* +- **check.is_not** - *a is not b* +- **check.is_true** - *bool(x) is True* +- **check.is_false** - *bool(x) is False* +- **check.is_none** - *x is None* +- **check.is_not_none** - *x is not None* +- **check.is_in** - *a in b* +- **check.is_not_in** - *a not in b* +- **check.is_instance** - *isinstance(a, b)* +- **check.is_not_instance** - *not isinstance(a, b)* +- **check.almost_equal** - *a == pytest.approx(b, rel, abs)* see at: [pytest.approx](https://docs.pytest.org/en/latest/reference.html#pytest-approx) +- **check.not_almost_equal** - *a != pytest.approx(b, rel, abs)* see at: [pytest.approx](https://docs.pytest.org/en/latest/reference.html#pytest-approx) +- **check.greater** - *a > b* +- **check.greater_equal** - *a >= b* +- **check.less** - *a < b* +- **check.less_equal** - *a <= b* +- **check.between** - *a < b < c* +- **check.raises** - *func raises given exception* similar to [pytest.raises](https://docs.pytest.org/en/latest/reference/reference.html#pytest-raises) +The httpx example can be rewritten with helper functions: +```python +def test_httpx_get_with_helpers(): + r = httpx.get('https://www.example.org/') + assert r.status_code == 200 + check.is_false(r.is_redirect) + check.equal(r.encoding, 'utf-8') + check.is_in('Example Domain', r.text) +``` +Which you use is personal preference. +## Defining your own check functions +The `@check.check_func` decorator allows you to wrap any test helper that has an assert +statement in it to be a non-blocking assert function. +```python +from pytest_check import check +@check.check_func +def is_four(a): + assert a == 4 +def test_all_four(): + is_four(1) + is_four(2) + is_four(3) + is_four(4) +``` +## Using raises as a context manager +`raises` is used as context manager, much like `pytest.raises`. The main difference being that a failure to raise the right exception won't stop the execution of the test method. +```python +from pytest_check import check +def test_raises(): + with check.raises(AssertionError): + x = 3 + assert 1 < x < 4 +``` +## Pseudo-tracebacks +With `check`, tests can have multiple failures per test. +This would possibly make for extensive output if we include the full traceback for +every failure. +To make the output a little more concise, `pytest-check` implements a shorter version, which we call pseudo-tracebacks. +For example, take this test: +```python +def test_example(): + a = 1 + b = 2 + c = [2, 4, 6] + check.greater(a, b) + check.less_equal(b, a) + check.is_in(a, c, "Is 1 in the list") + check.is_not_in(b, c, "make sure 2 isn't in list") +``` +This will result in: + +%prep +%autosetup -n pytest-check-2.1.4 + +%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-check -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 2.1.4-1 +- Package Spec generated |
