%global _empty_manifest_terminate_build 0 Name: python-pytest-regtest Version: 1.5.0 Release: 1 Summary: pytest plugin for regression tests License: https://opensource.org/licenses/MIT URL: https://gitlab.com/uweschmitt/pytest-regtest Source0: https://mirrors.nju.edu.cn/pypi/web/packages/52/0f/790ba30a32b6f6ab9db946cf39dc72a4cb8ad6d275bc4c3de082e247721f/pytest-regtest-1.5.0.tar.gz BuildArch: noarch %description pytest-regtest is a *pytest*-plugin for implementing regression tests. Compared to functional testing a regression test does not test if software produces correct results, instead a regression test checks if software behaves the same way as it did before introduced changes. More about regression testing at . Regression testing is a common technique to get started when refactoring legacy code lacking a test suite. *pytest-regtest* allows capturing selected output which then can be compared to the captured output from former runs. To install and activate this plugin execute: $ pip install pytest-regtest *pytest-regtest* plugin provides a fixture named *regtest* which can be used as a file handle for recording data: ```python def test_squares_up_to_ten(regtest): result = [i*i for i in range(10)] # one way to record output: print(result, file=regtest) # alternative method to record output: regtest.write("done") # or using a context manager: with regtest: print("this will be recorded") ``` If you run this test script with *pytest* the first time there is no recorded output for this test function so far and thus the test will fail with a message including a diff: $ py.test regression test output differences for test_demo.py::test_squares_up_to_ten: > --- current > +++ tobe > @@ -1,2 +1 @@ > -[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] > -done > + The output tells us what the current output is, and that the "tobe" output is still empty. For accepting this output, we run *pytest* with the *--reset-regtest* flag: $ py.test --regtest-reset Now the next execution of *py.test* will succeed: $ py.test Now we break the test by modifying the code under test to compute the first eleven square numbers: ```python from __future__ import print_function def test_squares_up_to_ten(regtest): result = [i*i for i in range(11)] # changed ! # one way to record output: print(result, file=regtest) # alternative method to record output: regtest.write("done") ``` The next run of pytest delivers a nice diff of the current and expected output from this test function: $ py.test > --- current > +++ tobe > @@ -1,2 +1,2 @@ > -[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] > +[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] > done The recorded output was written to files in the subfolder `_regtest_outputs` next to your test script(s). You might keep this folder under version control. %package -n python3-pytest-regtest Summary: pytest plugin for regression tests Provides: python-pytest-regtest BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pytest-regtest pytest-regtest is a *pytest*-plugin for implementing regression tests. Compared to functional testing a regression test does not test if software produces correct results, instead a regression test checks if software behaves the same way as it did before introduced changes. More about regression testing at . Regression testing is a common technique to get started when refactoring legacy code lacking a test suite. *pytest-regtest* allows capturing selected output which then can be compared to the captured output from former runs. To install and activate this plugin execute: $ pip install pytest-regtest *pytest-regtest* plugin provides a fixture named *regtest* which can be used as a file handle for recording data: ```python def test_squares_up_to_ten(regtest): result = [i*i for i in range(10)] # one way to record output: print(result, file=regtest) # alternative method to record output: regtest.write("done") # or using a context manager: with regtest: print("this will be recorded") ``` If you run this test script with *pytest* the first time there is no recorded output for this test function so far and thus the test will fail with a message including a diff: $ py.test regression test output differences for test_demo.py::test_squares_up_to_ten: > --- current > +++ tobe > @@ -1,2 +1 @@ > -[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] > -done > + The output tells us what the current output is, and that the "tobe" output is still empty. For accepting this output, we run *pytest* with the *--reset-regtest* flag: $ py.test --regtest-reset Now the next execution of *py.test* will succeed: $ py.test Now we break the test by modifying the code under test to compute the first eleven square numbers: ```python from __future__ import print_function def test_squares_up_to_ten(regtest): result = [i*i for i in range(11)] # changed ! # one way to record output: print(result, file=regtest) # alternative method to record output: regtest.write("done") ``` The next run of pytest delivers a nice diff of the current and expected output from this test function: $ py.test > --- current > +++ tobe > @@ -1,2 +1,2 @@ > -[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] > +[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] > done The recorded output was written to files in the subfolder `_regtest_outputs` next to your test script(s). You might keep this folder under version control. %package help Summary: Development documents and examples for pytest-regtest Provides: python3-pytest-regtest-doc %description help pytest-regtest is a *pytest*-plugin for implementing regression tests. Compared to functional testing a regression test does not test if software produces correct results, instead a regression test checks if software behaves the same way as it did before introduced changes. More about regression testing at . Regression testing is a common technique to get started when refactoring legacy code lacking a test suite. *pytest-regtest* allows capturing selected output which then can be compared to the captured output from former runs. To install and activate this plugin execute: $ pip install pytest-regtest *pytest-regtest* plugin provides a fixture named *regtest* which can be used as a file handle for recording data: ```python def test_squares_up_to_ten(regtest): result = [i*i for i in range(10)] # one way to record output: print(result, file=regtest) # alternative method to record output: regtest.write("done") # or using a context manager: with regtest: print("this will be recorded") ``` If you run this test script with *pytest* the first time there is no recorded output for this test function so far and thus the test will fail with a message including a diff: $ py.test regression test output differences for test_demo.py::test_squares_up_to_ten: > --- current > +++ tobe > @@ -1,2 +1 @@ > -[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] > -done > + The output tells us what the current output is, and that the "tobe" output is still empty. For accepting this output, we run *pytest* with the *--reset-regtest* flag: $ py.test --regtest-reset Now the next execution of *py.test* will succeed: $ py.test Now we break the test by modifying the code under test to compute the first eleven square numbers: ```python from __future__ import print_function def test_squares_up_to_ten(regtest): result = [i*i for i in range(11)] # changed ! # one way to record output: print(result, file=regtest) # alternative method to record output: regtest.write("done") ``` The next run of pytest delivers a nice diff of the current and expected output from this test function: $ py.test > --- current > +++ tobe > @@ -1,2 +1,2 @@ > -[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] > +[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] > done The recorded output was written to files in the subfolder `_regtest_outputs` next to your test script(s). You might keep this folder under version control. %prep %autosetup -n pytest-regtest-1.5.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-regtest -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 1.5.0-1 - Package Spec generated