diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index b7e1a35..0a2089f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /pycotap-1.1.0.tar.gz +/pycotap-1.3.1.tar.gz diff --git a/plans/test.fmf b/plans/test.fmf new file mode 100644 index 0000000..c1627f9 --- /dev/null +++ b/plans/test.fmf @@ -0,0 +1,5 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt diff --git a/python-pycotap.spec b/python-pycotap.spec index 5f4c547..aea5e80 100644 --- a/python-pycotap.spec +++ b/python-pycotap.spec @@ -1,54 +1,115 @@ -# Created by pyp2rpm-3.3.2 %global pypi_name pycotap Name: python-%{pypi_name} -Version: 1.1.0 -Release: 11%{?dist} +Version: 1.3.1 +Release: 10%{?dist} Summary: A tiny test runner that outputs TAP results to standard output License: MIT -URL: https://el-tramo.be/pycotap +URL: https://github.com/remko/pycotap Source0: %{pypi_source} BuildArch: noarch BuildRequires: python3-devel -BuildRequires: python3dist(setuptools) %description pycotap is a simple Python test runner for unit tests that outputs Test Anything -Protocol results directly to standard output.Contrary to other TAP runners +Protocol results directly to standard output. Contrary to other TAP runners for Python, pycotap prints TAP (and *only* TAP) to standard output instead of to a separate file, allowing you to pipe it directly to TAP pretty printers and processors. %package -n python3-%{pypi_name} Summary: %{summary} -%{?python_provide:%python_provide python3-%{pypi_name}} %description -n python3-%{pypi_name} pycotap is a simple Python test runner for unit tests that outputs Test Anything -Protocol results directly to standard output.Contrary to other TAP runners +Protocol results directly to standard output. Contrary to other TAP runners for Python, pycotap prints TAP (and *only* TAP) to standard output instead of to a separate file, allowing you to pipe it directly to TAP pretty printers and processors. %prep %autosetup -n %{pypi_name}-%{version} -# Remove bundled egg-info -rm -rf %{pypi_name}.egg-info + +%generate_buildrequires +%pyproject_buildrequires %build -%py3_build +%pyproject_wheel %install -%py3_install +%pyproject_install +%pyproject_save_files %{pypi_name} find %{buildroot}/%{python3_sitelib} -name '*.py' | xargs sed -i '/^#!/d' +%__rm -f %{buildroot}/usr/COPYING -%files -n python3-%{pypi_name} -%{python3_sitelib}/%{pypi_name} -%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info +%check +%pyproject_check_import + +%files -n python3-%{pypi_name} -f %{pyproject_files} %changelog +* Fri Sep 19 2025 Python Maint - 1.3.1-10 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 1.3.1-9 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 1.3.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Wed Jul 09 2025 Shlomi Fish 1.3.1-7 +- Stop using deprecated RPM macros ( https://bugzilla.redhat.com/show_bug.cgi?id=2378026 ) + +* Mon Jun 02 2025 Python Maint - 1.3.1-6 +- Rebuilt for Python 3.14 + +* Thu Feb 13 2025 Shlomi Fish 1.3.1-5 +- Update URL. + +* Sat Jan 18 2025 Fedora Release Engineering - 1.3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Oct 11 2024 Takao Fujiwara 1.3.1-3 +- Rebuilt for CI + +* Fri Jul 19 2024 Fedora Release Engineering - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jul 12 2024 Shlomi Fish 1.3.1-1 +- New upstream release ( https://bugzilla.redhat.com/show_bug.cgi?id=2297455 ) + +* Fri Jun 07 2024 Python Maint - 1.1.0-21 +- Rebuilt for Python 3.13 + +* Fri Jan 26 2024 Fedora Release Engineering - 1.1.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1.1.0-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Aug 21 2023 Parag Nemade - 1.1.0-18 +- Mark this as SPDX license expression converted + +* Fri Jul 21 2023 Fedora Release Engineering - 1.1.0-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 1.1.0-16 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 1.1.0-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 1.1.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 1.1.0-13 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 1.1.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Fri Jul 23 2021 Fedora Release Engineering - 1.1.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index dccda8e..8f8a5f4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pycotap-1.1.0.tar.gz) = dbe8d76c3e4b934dd4ff9ec0d48caafef3ae5583046a7316607b3c8cebf8cb920c68dc46487243aac81823994805c76f2be8ff0cbda593c70b70f268661fa289 +SHA512 (pycotap-1.3.1.tar.gz) = e7d50340fb4e3f55037a96aaaba419e6753d4499564339b6562317455ed223c3fd93bf41d0bd9654c03a4bea09377daa192ca985bafc96983e4a2261dde348b8 diff --git a/tests/base/main.fmf b/tests/base/main.fmf new file mode 100644 index 0000000..d657f11 --- /dev/null +++ b/tests/base/main.fmf @@ -0,0 +1,5 @@ +summary: Simple test of python-pycotap +test: ./test.sh +framework: beakerlib +require: + - python3-pycotap diff --git a/tests/base/test.py b/tests/base/test.py new file mode 100755 index 0000000..4f6f6e2 --- /dev/null +++ b/tests/base/test.py @@ -0,0 +1,37 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import unittest +import sys + +from pycotap import TAPTestRunner +from pycotap import LogMode + + +class SimpleTest(unittest.TestCase): + @classmethod + def function_name(cls): + sys.stdout = sys.__stdout__ + return sys._getframe().f_back.f_code.co_name + + @classmethod + def setUpClass(cls): + print(cls.function_name()) + + def setUp(self): + print(SimpleTest.function_name()) + + def main(self): + print(SimpleTest.function_name()) + + def test_foo(self): + print(SimpleTest.function_name()) + + +def main(): + loader = unittest.TestLoader() + runner = TAPTestRunner(test_output_log=LogMode.LogToError) + unittest.main(testRunner=runner, testLoader=loader) + +if __name__ == '__main__': + main() diff --git a/tests/base/test.sh b/tests/base/test.sh new file mode 100755 index 0000000..b61d891 --- /dev/null +++ b/tests/base/test.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartTest + rlRun -t "./test.py" + rlPhaseEnd +rlJournalEnd diff --git a/tests/tests.py b/tests/tests.py deleted file mode 100755 index 8c08d32..0000000 --- a/tests/tests.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -from __future__ import print_function - -import sys -import unittest - -# Need to flush the output against Gtk.main() -def printflush(sentence): - try: - print(sentence, flush=True) - except IOError: - pass - -def printerr(sentence): - try: - print(sentence, flush=True, file=sys.stderr) - except IOError: - pass - -from pycotap import TAPTestRunner -from pycotap import LogMode -printflush('## Load pycotap') - - -class AnthyTest(unittest.TestCase): - __test_index = 0 - - @classmethod - def setUpClass(cls): - printflush('## setUpclass done') - cls.__test_index += 1 - - def setUp(self): - self.__test_index += 1 - printflush('## setUp done') - - def test_case1(self): - if self.__test_index != 2: - with self.subTest(i = self.__test_index): - self.fail('setUp does not run: ' + error.message) - printflush('## Test done %d' % self.__test_index) - - -def main(): - loader = unittest.TestLoader() - # Log should be in stderr instead of StringIO - runner = TAPTestRunner(test_output_log=LogMode.LogToError) - unittest.main(testRunner=runner, testLoader=loader) - -if __name__ == '__main__': - main() diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 22f5154..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,13 +0,0 @@ -- hosts: localhost - tags: - - classic - roles: - - role: standard-test-basic - #- role: standard-test-beakerlib - required_packages: - - python3-pycotap - tests: - - smoke1: - dir: . - run: ./tests.py -