diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore index 0a2089f..b7e1a35 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ /pycotap-1.1.0.tar.gz -/pycotap-1.3.1.tar.gz diff --git a/plans/test.fmf b/plans/test.fmf deleted file mode 100644 index c1627f9..0000000 --- a/plans/test.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic smoke test -discover: - how: fmf -execute: - how: tmt diff --git a/python-pycotap.spec b/python-pycotap.spec index aea5e80..96b95c8 100644 --- a/python-pycotap.spec +++ b/python-pycotap.spec @@ -1,112 +1,54 @@ +# Created by pyp2rpm-3.3.2 %global pypi_name pycotap Name: python-%{pypi_name} -Version: 1.3.1 -Release: 10%{?dist} +Version: 1.1.0 +Release: 12%{?dist} Summary: A tiny test runner that outputs TAP results to standard output License: MIT -URL: https://github.com/remko/pycotap +URL: https://el-tramo.be/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} - -%generate_buildrequires -%pyproject_buildrequires +# Remove bundled egg-info +rm -rf %{pypi_name}.egg-info %build -%pyproject_wheel +%py3_build %install -%pyproject_install -%pyproject_save_files %{pypi_name} +%py3_install find %{buildroot}/%{python3_sitelib} -name '*.py' | xargs sed -i '/^#!/d' -%__rm -f %{buildroot}/usr/COPYING -%check -%pyproject_check_import - -%files -n python3-%{pypi_name} -f %{pyproject_files} +%files -n python3-%{pypi_name} +%{python3_sitelib}/%{pypi_name} +%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info %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 diff --git a/sources b/sources index 8f8a5f4..dccda8e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pycotap-1.3.1.tar.gz) = e7d50340fb4e3f55037a96aaaba419e6753d4499564339b6562317455ed223c3fd93bf41d0bd9654c03a4bea09377daa192ca985bafc96983e4a2261dde348b8 +SHA512 (pycotap-1.1.0.tar.gz) = dbe8d76c3e4b934dd4ff9ec0d48caafef3ae5583046a7316607b3c8cebf8cb920c68dc46487243aac81823994805c76f2be8ff0cbda593c70b70f268661fa289 diff --git a/tests/base/main.fmf b/tests/base/main.fmf deleted file mode 100644 index d657f11..0000000 --- a/tests/base/main.fmf +++ /dev/null @@ -1,5 +0,0 @@ -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 deleted file mode 100755 index 4f6f6e2..0000000 --- a/tests/base/test.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/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 deleted file mode 100755 index b61d891..0000000 --- a/tests/base/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/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 new file mode 100755 index 0000000..8c08d32 --- /dev/null +++ b/tests/tests.py @@ -0,0 +1,53 @@ +#!/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 new file mode 100644 index 0000000..22f5154 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,13 @@ +- hosts: localhost + tags: + - classic + roles: + - role: standard-test-basic + #- role: standard-test-beakerlib + required_packages: + - python3-pycotap + tests: + - smoke1: + dir: . + run: ./tests.py +