summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pytest-regtest.spec267
-rw-r--r--sources1
3 files changed, 269 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..42d4e02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pytest-regtest-1.5.0.tar.gz
diff --git a/python-pytest-regtest.spec b/python-pytest-regtest.spec
new file mode 100644
index 0000000..a4cf067
--- /dev/null
+++ b/python-pytest-regtest.spec
@@ -0,0 +1,267 @@
+%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
+<https://en.wikipedia.org/wiki/Regression_testing>. 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
+<https://en.wikipedia.org/wiki/Regression_testing>. 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
+<https://en.wikipedia.org/wiki/Regression_testing>. 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 <Python_Bot@openeuler.org> - 1.5.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..38657e6
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+48c110fe83b723464bd445bcd4477f60 pytest-regtest-1.5.0.tar.gz