diff --git a/dynamic-layers/meta-python/recipes-security/fail2ban/files/0001-fail2ban-use-putao.unittest.TestRunner-for-ptest-out.patch b/dynamic-layers/meta-python/recipes-security/fail2ban/files/0001-fail2ban-use-putao.unittest.TestRunner-for-ptest-out.patch new file mode 100644 index 0000000..c6729cc --- /dev/null +++ b/dynamic-layers/meta-python/recipes-security/fail2ban/files/0001-fail2ban-use-putao.unittest.TestRunner-for-ptest-out.patch @@ -0,0 +1,43 @@ +From 7b42974b5bf20d9db8e788e9d6817004556d660d Mon Sep 17 00:00:00 2001 +From: Haixiao Yan +Date: Fri, 19 Sep 2025 15:03:56 +0800 +Subject: [PATCH] fail2ban: use putao.unittest.TestRunner for ptest output + +Switch the test runner from unittest's default TextTestRunner to +putao.unittest.TestRunner (provided by unittest-automake-output) so +that results are reported in Automake-compatible PASS/FAIL format. +This enables ptest-runner to correctly parse and summarize individual +test results. + +Upstream-Status: Pending + +Signed-off-by: Haixiao Yan +--- + bin/fail2ban-testcases | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/bin/fail2ban-testcases b/bin/fail2ban-testcases +index 48aae4b5ffdc..20db4a01a3d6 100755 +--- a/bin/fail2ban-testcases ++++ b/bin/fail2ban-testcases +@@ -28,7 +28,7 @@ import logging + import os + import sys + import time +-import unittest ++import putao.unittest + + # Check if local fail2ban module exists, and use if it exists by + # modifying the path. This is done so that tests can be used in dev +@@ -63,7 +63,7 @@ tests = gatherTests(regexps, opts) + # + # Run the tests + # +-testRunner = unittest.TextTestRunner(verbosity=verbosity) ++testRunner = putao.unittest.TestRunner() + + tests_results = testRunner.run(tests) + +-- +2.34.1 + diff --git a/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_git.bb b/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_git.bb index c85953a..4238c9f 100644 --- a/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_git.bb +++ b/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_git.bb @@ -13,6 +13,7 @@ DEPENDS = "python3-native" SRCREV = "2856092709470250dc299931bc748f112590059f" SRC_URI = "git://github.com/fail2ban/fail2ban.git;branch=master;protocol=https \ + file://0001-fail2ban-use-putao.unittest.TestRunner-for-ptest-out.patch \ file://initd \ file://run-ptest \ " @@ -67,6 +68,12 @@ INSANE_SKIP:${PN}:append = "already-stripped" RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog} nftables python3-core python3-pyinotify" RDEPENDS:${PN} += "python3-sqlite3" RDEPENDS:${PN} += " python3-logging python3-fcntl python3-json" -RDEPENDS:${PN}-ptest = "python3-core python3-io python3-modules python3-fail2ban" +RDEPENDS:${PN}-ptest = " \ + python3-core \ + python3-io \ + python3-modules \ + python3-fail2ban \ + python3-unittest-automake-output \ + " RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'python3-systemd', '', d)}"