diff mbox series

[2/2] python3-*: Update recipes leveraging standard pytest ptests to use the new ptest-python-pytest class

Message ID 20241217223605.3383795-2-derek@asterius.io
State New
Headers show
Series [1/2] classes/ptest-python-pytest: add a new class to consolidate ptest functionality for python pytest based tests | expand

Commit Message

Derek Straka Dec. 17, 2024, 10:36 p.m. UTC
The newly added ptest-python-pytest removes duplication for:
  1. Copying pytest files to the ptest directory
  2. Adding standard pytest dependencies
  3. Adding a common run-ptest script using pytest

Signed-off-by: Derek Straka <derek@asterius.io>
---
 .../python/python3-atomicwrites/run-ptest        |  3 ---
 .../python/python3-atomicwrites_1.4.1.bb         | 13 +------------
 .../python/python3-attrs/run-ptest               |  3 ---
 .../python/python3-attrs_24.2.0.bb               | 12 ++----------
 .../python/python3-bcrypt/run-ptest              |  3 ---
 .../python/python3-bcrypt_4.2.1.bb               |  6 +-----
 .../python/python3-calver/run-ptest              |  3 ---
 .../python/python3-calver_2022.6.26.bb           | 10 +---------
 .../python/python3-click/run-ptest               |  3 ---
 .../python/python3-click_8.1.7.bb                |  8 ++------
 .../python/python3-idna/run-ptest                |  3 ---
 .../recipes-devtools/python/python3-idna_3.10.bb |  8 +-------
 .../python/python3-jinja2/run-ptest              |  3 ---
 .../python/python3-jinja2_3.1.4.bb               | 10 +---------
 .../python/python3-libarchive-c_5.1.bb           |  8 ++------
 .../python/python3-license-expression/run-ptest  |  3 ---
 .../python/python3-license-expression_30.4.0.bb  | 13 +------------
 .../python/python3-mako/run-ptest                |  3 ---
 .../python/python3-mako_1.3.6.bb                 | 15 ++++-----------
 .../python/python3-markupsafe/run-ptest          |  3 ---
 .../python/python3-markupsafe_3.0.2.bb           | 16 +---------------
 .../python/python3-more-itertools/run-ptest      |  3 ---
 .../python/python3-more-itertools_10.5.0.bb      | 13 +------------
 .../python/python3-pefile_2024.8.26.bb           | 11 +----------
 .../python/python3-pluggy/run-ptest              |  3 ---
 .../python/python3-pluggy_1.5.0.bb               | 16 ++--------------
 .../python/python3-pyasn1/run-ptest              |  3 ---
 .../python/python3-pyasn1_0.6.1.bb               | 16 +---------------
 .../python/python3-pytz/run-ptest                |  3 ---
 .../python/python3-pytz_2024.2.bb                | 14 ++++----------
 .../python/python3-pyyaml/run-ptest              |  3 ---
 .../python/python3-pyyaml_6.0.2.bb               | 13 +------------
 .../python/python3-rpds-py/run-ptest             |  3 ---
 .../python/python3-rpds-py_0.21.0.bb             | 11 +----------
 .../python/python3-trove-classifiers/run-ptest   |  3 ---
 .../python3-trove-classifiers_2024.10.21.16.bb   | 16 +---------------
 .../python/python3-uritools/run-ptest            |  3 ---
 .../python/python3-uritools_4.0.3.bb             | 13 +------------
 .../python/python3-wcwidth/run-ptest             |  3 ---
 .../python/python3-wcwidth_0.2.13.bb             | 15 ++-------------
 .../python/python3-webcolors/run-ptest           |  3 ---
 .../python/python3-webcolors_24.8.0.bb           | 16 +---------------
 .../python/python3-xmltodict/run-ptest           |  3 ---
 .../python/python3-xmltodict_0.14.2.bb           | 14 +-------------
 44 files changed, 34 insertions(+), 316 deletions(-)
 delete mode 100644 meta/recipes-devtools/python/python3-atomicwrites/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-attrs/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-bcrypt/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-calver/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-click/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-idna/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-jinja2/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-license-expression/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-mako/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-markupsafe/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-more-itertools/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-pluggy/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-pyasn1/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-pytz/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-pyyaml/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-rpds-py/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-trove-classifiers/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-uritools/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-wcwidth/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-webcolors/run-ptest
 delete mode 100644 meta/recipes-devtools/python/python3-xmltodict/run-ptest

Comments

patchtest@automation.yoctoproject.org Dec. 17, 2024, 10:46 p.m. UTC | #1
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch /home/patchtest/share/mboxes/2-2-python3--Update-recipes-leveraging-standard-pytest-ptests-to-use-the-new-ptest-python-pytest-class.patch

FAIL: test shortlog length: Edit shortlog so that it is 90 characters or less (currently 100 characters) (test_mbox.TestMbox.test_shortlog_length)

PASS: pretest src uri left files (test_metadata.TestMetadata.pretest_src_uri_left_files)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)

SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test CVE tag format: No new CVE patches introduced (test_patch.TestPatch.test_cve_tag_format)
SKIP: test Signed-off-by presence: No new CVE patches introduced (test_patch.TestPatch.test_signed_off_by_presence)
SKIP: test Upstream-Status presence: No new CVE patches introduced (test_patch.TestPatch.test_upstream_status_presence_format)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3-atomicwrites/run-ptest b/meta/recipes-devtools/python/python3-atomicwrites/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-atomicwrites/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb b/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb
index 848f74d612..b14b62ab2f 100644
--- a/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb
+++ b/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb
@@ -5,23 +5,12 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4"
 
 SRC_URI[sha256sum] = "81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"
 
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-	file://run-ptest \
-"
+inherit pypi setuptools3 ptest-python-pytest
 
 RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-	python3-unittest-automake-output \
 	python3-unixadmin \
 "
 
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 RDEPENDS:${PN} = "python3-misc"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-attrs/run-ptest b/meta/recipes-devtools/python/python3-attrs/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-attrs/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-attrs_24.2.0.bb b/meta/recipes-devtools/python/python3-attrs_24.2.0.bb
index a6cb60a8c8..97fda386e6 100644
--- a/meta/recipes-devtools/python/python3-attrs_24.2.0.bb
+++ b/meta/recipes-devtools/python/python3-attrs_24.2.0.bb
@@ -5,11 +5,7 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=5e55731824cf9205cfabeab9a0600887"
 
 SRC_URI[sha256sum] = "5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"
 
-inherit pypi ptest python_hatchling
-
-SRC_URI += " \
-	file://run-ptest \
-"
+inherit pypi ptest-python-pytest python_hatchling
 
 DEPENDS += " \
     python3-hatch-vcs-native \
@@ -23,13 +19,9 @@  RDEPENDS:${PN}+= " \
 
 RDEPENDS:${PN}-ptest += " \
     python3-hypothesis \
-    python3-pytest \
-    python3-unittest-automake-output \
 "
 
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+do_install_ptest:append() {
     install ${S}/conftest.py ${D}${PTEST_PATH}/
 }
 
diff --git a/meta/recipes-devtools/python/python3-bcrypt/run-ptest b/meta/recipes-devtools/python/python3-bcrypt/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-bcrypt/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-bcrypt_4.2.1.bb b/meta/recipes-devtools/python/python3-bcrypt_4.2.1.bb
index 7ca73acc48..ce9237de36 100644
--- a/meta/recipes-devtools/python/python3-bcrypt_4.2.1.bb
+++ b/meta/recipes-devtools/python/python3-bcrypt_4.2.1.bb
@@ -8,11 +8,7 @@  LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '-fuse-ld=bfd', '',
 
 SRC_URI[sha256sum] = "6765386e3ab87f569b276988742039baab087b2cdb01e809d74e74503c2faafe"
 
-inherit pypi python_setuptools3_rust ptest-cargo cargo-update-recipe-crates
-
-SRC_URI += " \
-	file://run-ptest \
-"
+inherit pypi python_setuptools3_rust cargo-update-recipe-crates ptest-python-pytest
 
 CARGO_SRC_DIR = "src/_bcrypt"
 
diff --git a/meta/recipes-devtools/python/python3-calver/run-ptest b/meta/recipes-devtools/python/python3-calver/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-calver/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-calver_2022.6.26.bb b/meta/recipes-devtools/python/python3-calver_2022.6.26.bb
index 71b5431400..b2e7e0769d 100644
--- a/meta/recipes-devtools/python/python3-calver_2022.6.26.bb
+++ b/meta/recipes-devtools/python/python3-calver_2022.6.26.bb
@@ -5,24 +5,16 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SRC_URI = " \
     git://github.com/di/calver;branch=master;protocol=https \
-    file://run-ptest \
     file://0001-setup.py-hard-code-version.patch \
 "
 SRCREV = "3268d8acf2c345f32a1c5f08ba25dc67f76cca81"
 
-inherit python_setuptools_build_meta ptest
+inherit python_setuptools_build_meta ptest-python-pytest
 
 S = "${WORKDIR}/git"
 
 RDEPENDS:${PN}-ptest += " \
     python3-pretend \
-    python3-pytest \
-    python3-unittest-automake-output \
 "
 
-do_install_ptest() {
-        install -d ${D}${PTEST_PATH}/tests
-        cp -rf ${S}/tests ${D}${PTEST_PATH}/
-}
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-click/run-ptest b/meta/recipes-devtools/python/python3-click/run-ptest
deleted file mode 100644
index b63c4de0d9..0000000000
--- a/meta/recipes-devtools/python/python3-click/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta/recipes-devtools/python/python3-click_8.1.7.bb b/meta/recipes-devtools/python/python3-click_8.1.7.bb
index baff4cbd45..e8eeec36e8 100644
--- a/meta/recipes-devtools/python/python3-click_8.1.7.bb
+++ b/meta/recipes-devtools/python/python3-click_8.1.7.bb
@@ -10,9 +10,7 @@  LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=1fa98232fd645608937a0fdc82e999b8"
 
 SRC_URI[sha256sum] = "ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"
 
-inherit pypi setuptools3 ptest
-
-SRC_URI += "file://run-ptest"
+inherit pypi setuptools3 ptest-python-pytest
 
 RDEPENDS:${PN}-ptest += " \
 	python3-pytest \
@@ -20,9 +18,7 @@  RDEPENDS:${PN}-ptest += " \
 	python3-unixadmin \
 "
 
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+do_install_ptest:append() {
     cp -rf ${S}/setup.cfg ${D}${PTEST_PATH}/
     cp -rf ${S}/docs ${D}${PTEST_PATH}/
 }
diff --git a/meta/recipes-devtools/python/python3-idna/run-ptest b/meta/recipes-devtools/python/python3-idna/run-ptest
deleted file mode 100644
index d9693bb30f..0000000000
--- a/meta/recipes-devtools/python/python3-idna/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-python3 -mputao.unittest discover --top-level-directory . --start-directory tests
diff --git a/meta/recipes-devtools/python/python3-idna_3.10.bb b/meta/recipes-devtools/python/python3-idna_3.10.bb
index 854dc35242..bd6529e720 100644
--- a/meta/recipes-devtools/python/python3-idna_3.10.bb
+++ b/meta/recipes-devtools/python/python3-idna_3.10.bb
@@ -5,13 +5,7 @@  LIC_FILES_CHKSUM = "file://LICENSE.md;md5=204c0612e40a4dd46012a78d02c80fb1"
 
 SRC_URI[sha256sum] = "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"
 
-SRC_URI += "file://run-ptest"
-
-inherit pypi python_flit_core ptest
-
-do_install_ptest() {
-    cp -r ${S}/tests ${D}${PTEST_PATH}/
-}
+inherit pypi python_flit_core ptest-python-pytest
 
 RDEPENDS:${PN} += "python3-codecs"
 RDEPENDS:${PN}-ptest += "python3-unittest-automake-output"
diff --git a/meta/recipes-devtools/python/python3-jinja2/run-ptest b/meta/recipes-devtools/python/python3-jinja2/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-jinja2/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-jinja2_3.1.4.bb b/meta/recipes-devtools/python/python3-jinja2_3.1.4.bb
index fd0afc1cb1..84c40796c6 100644
--- a/meta/recipes-devtools/python/python3-jinja2_3.1.4.bb
+++ b/meta/recipes-devtools/python/python3-jinja2_3.1.4.bb
@@ -12,21 +12,13 @@  CVE_PRODUCT = "jinja2 jinja"
 
 CLEANBROKEN = "1"
 
-inherit pypi python_flit_core ptest
+inherit pypi python_flit_core ptest-python-pytest
 
 SRC_URI += " \
-	file://run-ptest \
 	file://fix-3.13.patch \
 "
 
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 RDEPENDS:${PN}-ptest += " \
-    python3-pytest \
-    python3-unittest-automake-output \
     python3-unixadmin \
 "
 
diff --git a/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb
index 333831c4b6..8b5de01b69 100644
--- a/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb
+++ b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb
@@ -13,7 +13,7 @@  SRC_URI += " \
 
 PYPI_PACKAGE = "libarchive-c"
 
-inherit pypi setuptools3 ptest
+inherit pypi setuptools3 ptest-python-pytest
 
 SRC_URI[sha256sum] = "7bcce24ea6c0fa3bc62468476c6d2f6264156db2f04878a372027c10615a2721"
 
@@ -34,16 +34,12 @@  RDEPENDS:${PN} += "\
 
 RDEPENDS:${PN}-ptest += " \
         locale-base-en-us \
-        python3-pytest \
-        python3-unittest-automake-output \
 "
 
 BBCLASSEXTEND = "native"
 
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
+do_install_ptest:append() {
     install -d ${D}${PTEST_PATH}/libarchive
-    cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/
     cp ${S}/libarchive/* ${D}${PTEST_PATH}/libarchive/
     cp ${S}/README.rst ${D}${PTEST_PATH}/README.rst
 }
diff --git a/meta/recipes-devtools/python/python3-license-expression/run-ptest b/meta/recipes-devtools/python/python3-license-expression/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-license-expression/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-license-expression_30.4.0.bb b/meta/recipes-devtools/python/python3-license-expression_30.4.0.bb
index fc92026c79..3af739bed4 100644
--- a/meta/recipes-devtools/python/python3-license-expression_30.4.0.bb
+++ b/meta/recipes-devtools/python/python3-license-expression_30.4.0.bb
@@ -6,7 +6,7 @@  LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=86d3f3a95c324c9479bd8986968f43
 
 SRC_URI[sha256sum] = "6464397f8ed4353cc778999caec43b099f8d8d5b335f282e26a9eb9435522f05"
 
-inherit pypi ptest python_setuptools_build_meta
+inherit pypi ptest-python-pytest python_setuptools_build_meta
 PYPI_PACKAGE = "license_expression"
 UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
 
@@ -22,19 +22,8 @@  RDEPENDS:${PN} += "\
 
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-	python3-unittest-automake-output \
-"
-
 do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
     install -d ${D}${PTEST_PATH}/src
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
     cp -rf ${S}/src/* ${D}${PTEST_PATH}/src/
     cp -rf ${S}/setup.cfg ${D}${PTEST_PATH}/
 }
diff --git a/meta/recipes-devtools/python/python3-mako/run-ptest b/meta/recipes-devtools/python/python3-mako/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-mako/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-mako_1.3.6.bb b/meta/recipes-devtools/python/python3-mako_1.3.6.bb
index 27e2082dc0..c10cfa20c8 100644
--- a/meta/recipes-devtools/python/python3-mako_1.3.6.bb
+++ b/meta/recipes-devtools/python/python3-mako_1.3.6.bb
@@ -6,11 +6,9 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=d0995d6f7ba3f186a03118f244e88f57"
 
 PYPI_PACKAGE = "mako"
 
-inherit pypi python_setuptools_build_meta ptest
+inherit pypi python_setuptools_build_meta ptest-python-pytest
+
 
-SRC_URI:append = " \
-    file://run-ptest \
-"
 
 SRC_URI[sha256sum] = "9ec3a1583713479fae654f83ed9fa8c9a4c16b7bb0daba0e6bbebff50c0d983d"
 
@@ -22,15 +20,10 @@  RDEPENDS:${PN} = "python3-html \
                   python3-threading \
 "
 
-RDEPENDS:${PN}-ptest += "\
-    python3-pytest \
-    python3-unittest-automake-output \
-"
+PTEST_PYTEST_DIR = "test"
 
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/test
+do_install_ptest:append() {
     install -m 0644 ${S}/setup.cfg ${D}${PTEST_PATH}/
-    cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
 }
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-markupsafe/run-ptest b/meta/recipes-devtools/python/python3-markupsafe/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-markupsafe/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-markupsafe_3.0.2.bb b/meta/recipes-devtools/python/python3-markupsafe_3.0.2.bb
index e5feb8fe5f..b90dd84f48 100644
--- a/meta/recipes-devtools/python/python3-markupsafe_3.0.2.bb
+++ b/meta/recipes-devtools/python/python3-markupsafe_3.0.2.bb
@@ -6,22 +6,8 @@  LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 SRC_URI[sha256sum] = "ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"
 
 PYPI_PACKAGE = "markupsafe"
-inherit pypi python_setuptools_build_meta ptest
+inherit pypi python_setuptools_build_meta ptest-python-pytest
 
 RDEPENDS:${PN} += "python3-html python3-stringold"
 
 BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-	python3-unittest-automake-output \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -f ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta/recipes-devtools/python/python3-more-itertools/run-ptest b/meta/recipes-devtools/python/python3-more-itertools/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-more-itertools/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-more-itertools_10.5.0.bb b/meta/recipes-devtools/python/python3-more-itertools_10.5.0.bb
index a98b412b5d..eda9bf1004 100644
--- a/meta/recipes-devtools/python/python3-more-itertools_10.5.0.bb
+++ b/meta/recipes-devtools/python/python3-more-itertools_10.5.0.bb
@@ -5,11 +5,7 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
 
 SRC_URI[sha256sum] = "5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6"
 
-inherit pypi python_flit_core ptest
-
-SRC_URI += " \
-	file://run-ptest \
-"
+inherit pypi python_flit_core ptest-python-pytest
 
 RDEPENDS:${PN} += " \
         python3-asyncio \
@@ -17,13 +13,6 @@  RDEPENDS:${PN} += " \
 
 RDEPENDS:${PN}-ptest += " \
 	python3-statistics \
-	python3-pytest \
-	python3-unittest-automake-output \
         "
 
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb b/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb
index 87e651d9d5..6e72c93741 100644
--- a/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb
+++ b/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb
@@ -4,7 +4,7 @@  HOMEPAGE = "https://github.com/erocarrera/pefile"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e34c75178086aca0a17551ffbacaca53"
 
-inherit setuptools3 ptest
+inherit setuptools3 ptest-python-pytest
 SRCREV = "4b3b1e2e568a88d4f1897d694d684f23d9e270c4"
 SRC_URI = "git://github.com/erocarrera/pefile;branch=master;protocol=https \
            file://run-ptest"
@@ -12,17 +12,8 @@  S = "${WORKDIR}/git"
 
 BBCLASSEXTEND = "native nativesdk"
 
-do_install_ptest() {
-   install -d ${D}${PTEST_PATH}/tests
-   cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 RDEPENDS:${PN} += " \
     python3-mmap \
     python3-netclient \
     python3-stringold \
 "
-RDEPENDS:${PN}-ptest += "\
-    python3-pytest \
-    python3-unittest-automake-output \
-"
diff --git a/meta/recipes-devtools/python/python3-pluggy/run-ptest b/meta/recipes-devtools/python/python3-pluggy/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-pluggy/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-pluggy_1.5.0.bb b/meta/recipes-devtools/python/python3-pluggy_1.5.0.bb
index 4f8412d4b3..1f9bb6d1cb 100644
--- a/meta/recipes-devtools/python/python3-pluggy_1.5.0.bb
+++ b/meta/recipes-devtools/python/python3-pluggy_1.5.0.bb
@@ -7,20 +7,8 @@  SRC_URI[sha256sum] = "2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f
 
 DEPENDS += "python3-setuptools-scm-native"
 
-inherit pypi ptest python_setuptools_build_meta
+inherit pypi ptest-python-pytest python_setuptools_build_meta
 
-SRC_URI += " \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-	python3-unittest-automake-output \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/testing
-	cp -rf ${S}/testing/* ${D}${PTEST_PATH}/testing/
-}
+PTEST_PYTEST_DIR = "testing"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-pyasn1/run-ptest b/meta/recipes-devtools/python/python3-pyasn1/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-pyasn1/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-pyasn1_0.6.1.bb b/meta/recipes-devtools/python/python3-pyasn1_0.6.1.bb
index 3913cb51d2..820ef27d2b 100644
--- a/meta/recipes-devtools/python/python3-pyasn1_0.6.1.bb
+++ b/meta/recipes-devtools/python/python3-pyasn1_0.6.1.bb
@@ -5,7 +5,7 @@  LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=190f79253908c986e6cacf380c3a5f6d"
 
 SRC_URI[sha256sum] = "6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"
 
-inherit pypi python_setuptools_build_meta ptest
+inherit pypi python_setuptools_build_meta ptest-python-pytest
 
 RDEPENDS:${PN}:class-target += " \
     python3-codecs \
@@ -14,18 +14,4 @@  RDEPENDS:${PN}:class-target += " \
     python3-shell \
 "
 
-SRC_URI += " \
-       file://run-ptest \
-           "
-
-RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-	python3-unittest-automake-output \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-pytz/run-ptest b/meta/recipes-devtools/python/python3-pytz/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-pytz/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-pytz_2024.2.bb b/meta/recipes-devtools/python/python3-pytz_2024.2.bb
index 04bd1d632d..a379e19234 100644
--- a/meta/recipes-devtools/python/python3-pytz_2024.2.bb
+++ b/meta/recipes-devtools/python/python3-pytz_2024.2.bb
@@ -3,7 +3,9 @@  HOMEPAGE = "http://pythonhosted.org/pytz"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a67fc46c1b596cce5d21209bbe75999"
 
-inherit pypi setuptools3 ptest
+inherit pypi setuptools3 ptest-python-pytest
+
+PTEST_PYTEST_DIR = "pytz/tests"
 
 SRC_URI[sha256sum] = "2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"
 
@@ -18,19 +20,11 @@  RDEPENDS:${PN}:class-target += "\
 
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI += " \
-	file://run-ptest \
-"
-
 RDEPENDS:${PN}-ptest += " \
 	python3-pytest \
 	python3-unittest-automake-output \
 "
 
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/pytz
-	install -d ${D}${PTEST_PATH}/pytz/tests
-	cp -rf ${S}/pytz/tests/* ${D}${PTEST_PATH}/pytz/tests/
+do_install_ptest:append() {
 	cp -f ${S}/README.rst ${D}${PTEST_PATH}/
-
 }
diff --git a/meta/recipes-devtools/python/python3-pyyaml/run-ptest b/meta/recipes-devtools/python/python3-pyyaml/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-pyyaml/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-pyyaml_6.0.2.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.2.bb
index 6ea342eae3..7ebe3f7d9f 100644
--- a/meta/recipes-devtools/python/python3-pyyaml_6.0.2.bb
+++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.2.bb
@@ -8,28 +8,17 @@  SRC_URI[sha256sum] = "d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff
 
 SRC_URI += "\
     https://raw.githubusercontent.com/yaml/pyyaml/a98fd6088e81d7aca571220c966bbfe2ac43c335/tests/test_dump_load.py;name=test \
-    file://run-ptest \
 "
 SRC_URI[test.sha256sum] = "b6a8a2825d89fdc8aee226560f66b8196e872012a0ea7118cbef1a832359434a"
 
-inherit pypi python_setuptools_build_meta ptest cython
+inherit pypi python_setuptools_build_meta ptest-python-pytest cython
 
 PACKAGECONFIG ?= "libyaml"
 PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml"
 
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${UNPACKDIR}/test_dump_load.py ${D}${PTEST_PATH}/tests/
-}
-
 RDEPENDS:${PN} += "\
     python3-datetime \
     python3-netclient \
 "
 
-RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-	python3-unittest-automake-output \
-"
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-rpds-py/run-ptest b/meta/recipes-devtools/python/python3-rpds-py/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-rpds-py/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-rpds-py_0.21.0.bb b/meta/recipes-devtools/python/python3-rpds-py_0.21.0.bb
index 81a8cb79a4..d162f71c19 100644
--- a/meta/recipes-devtools/python/python3-rpds-py_0.21.0.bb
+++ b/meta/recipes-devtools/python/python3-rpds-py_0.21.0.bb
@@ -4,13 +4,11 @@  HOMEPAGE = "https://pypi.org/project/rpds-py/"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7767fa537c4596c54141f32882c4a984"
 
-SRC_URI += "file://run-ptest"
-
 SRC_URI[sha256sum] = "ed6378c9d66d0de903763e7706383d60c33829581f0adff47b6535f1802fa6db"
 
 require ${BPN}-crates.inc
 
-inherit pypi cargo-update-recipe-crates python_maturin ptest
+inherit pypi cargo-update-recipe-crates python_maturin ptest-python-pytest
 
 PYPI_PACKAGE = "rpds_py"
 UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
@@ -19,13 +17,6 @@  RDEPENDS:${PN}-ptest += " \
     python3-iniconfig \
     python3-packaging \
     python3-pluggy \
-    python3-pytest \
-    python3-unittest-automake-output \
     "
 
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-trove-classifiers/run-ptest b/meta/recipes-devtools/python/python3-trove-classifiers/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-trove-classifiers/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-trove-classifiers_2024.10.21.16.bb b/meta/recipes-devtools/python/python3-trove-classifiers_2024.10.21.16.bb
index 8640ee156b..b63d39b784 100644
--- a/meta/recipes-devtools/python/python3-trove-classifiers_2024.10.21.16.bb
+++ b/meta/recipes-devtools/python/python3-trove-classifiers_2024.10.21.16.bb
@@ -8,22 +8,8 @@  SRC_URI[sha256sum] = "17cbd055d67d5e9d9de63293a8732943fabc21574e4c7b74edf112b492
 PYPI_PACKAGE = "trove_classifiers"
 UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
 
-inherit pypi python_setuptools_build_meta ptest
+inherit pypi python_setuptools_build_meta ptest-python-pytest
 
 DEPENDS += " python3-calver-native"
 
-SRC_URI += " \
-        file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-       python3-pytest \
-       python3-unittest-automake-output \
-"
-
-do_install_ptest() {
-      install -d ${D}${PTEST_PATH}/tests
-      cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-uritools/run-ptest b/meta/recipes-devtools/python/python3-uritools/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-uritools/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-uritools_4.0.3.bb b/meta/recipes-devtools/python/python3-uritools_4.0.3.bb
index 640c3f3ab6..4210407e00 100644
--- a/meta/recipes-devtools/python/python3-uritools_4.0.3.bb
+++ b/meta/recipes-devtools/python/python3-uritools_4.0.3.bb
@@ -6,17 +6,6 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=539275e657c6b7af026bb908356f7541"
 
 SRC_URI[sha256sum] = "ee06a182a9c849464ce9d5fa917539aacc8edd2a4924d1b7aabeeecabcae3bc2"
 
-SRC_URI += "file://run-ptest"
-
-inherit pypi python_setuptools_build_meta ptest
-
-do_install_ptest() {
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/
-}
-
-RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-	python3-unittest-automake-output \
-"
+inherit pypi python_setuptools_build_meta ptest-python-pytest
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-wcwidth/run-ptest b/meta/recipes-devtools/python/python3-wcwidth/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-wcwidth/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb b/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb
index 4a9bf75323..71bb1a2703 100644
--- a/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb
+++ b/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb
@@ -6,20 +6,9 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb"
 
 SRC_URI[sha256sum] = "72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"
 
-inherit pypi setuptools3 ptest
+inherit pypi setuptools3 ptest-python-pytest
 
-SRC_URI += " \
-        file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-       python3-pytest \
-       python3-unittest-automake-output \
-"
-
-do_install_ptest() {
-      install -d ${D}${PTEST_PATH}/tests 
-      cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+do_install_ptest:aapend() {
       install -d ${D}${PTEST_PATH}/bin
       cp -rf ${S}/bin/* ${D}${PTEST_PATH}/bin/
 }
diff --git a/meta/recipes-devtools/python/python3-webcolors/run-ptest b/meta/recipes-devtools/python/python3-webcolors/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta/recipes-devtools/python/python3-webcolors/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest --automake
diff --git a/meta/recipes-devtools/python/python3-webcolors_24.8.0.bb b/meta/recipes-devtools/python/python3-webcolors_24.8.0.bb
index 1998cfc4c1..c5ed4bd7d3 100644
--- a/meta/recipes-devtools/python/python3-webcolors_24.8.0.bb
+++ b/meta/recipes-devtools/python/python3-webcolors_24.8.0.bb
@@ -5,24 +5,10 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=cbaebec43b7d199c7fd8f5411b3b0448"
 
 SRC_URI[sha256sum] = "08b07af286a01bcd30d583a7acadf629583d1f79bfef27dd2c2c5c263817277d"
 
-inherit pypi python_setuptools_build_meta ptest
+inherit pypi python_setuptools_build_meta ptest-python-pytest
 
 RDEPENDS:${PN}:class-target = "\
     python3-stringold \
 "
 
-SRC_URI += " \
-    file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    python3-pytest \
-    python3-unittest-automake-output \
-"
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/tests
-    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-xmltodict/run-ptest b/meta/recipes-devtools/python/python3-xmltodict/run-ptest
deleted file mode 100644
index 3385d68939..0000000000
--- a/meta/recipes-devtools/python/python3-xmltodict/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@ 
-#!/bin/sh
-
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta/recipes-devtools/python/python3-xmltodict_0.14.2.bb b/meta/recipes-devtools/python/python3-xmltodict_0.14.2.bb
index e99fa3826e..56cdf6ff4a 100644
--- a/meta/recipes-devtools/python/python3-xmltodict_0.14.2.bb
+++ b/meta/recipes-devtools/python/python3-xmltodict_0.14.2.bb
@@ -9,11 +9,7 @@  PYPI_PACKAGE = "xmltodict"
 
 BBCLASSEXTEND = "native nativesdk"
 
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-	file://run-ptest \
-"
+inherit pypi setuptools3 ptest-python-pytest
 
 RDEPENDS:${PN} += " \
 	python3-core \
@@ -21,11 +17,3 @@  RDEPENDS:${PN} += " \
 	python3-io \
 "
 
-RDEPENDS:${PN}-ptest += " \
-	python3-pytest \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}