commit:     390e78e69b3f69bb10ae787ad2d05d4db01076e6
Author:     Esteve Varela Colominas <esteve.varela <AT> gmail <DOT> com>
AuthorDate: Mon Nov  3 20:09:27 2025 +0000
Commit:     Esteve Varela Colominas <esteve.varela <AT> gmail <DOT> com>
CommitDate: Mon Nov  3 20:10:27 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=390e78e6

dev-util/nvchecker: Enable network-relying tests

These are super inconsistent and unreliable, but alright then.

Signed-off-by: Esteve Varela Colominas <esteve.varela <AT> gmail.com>

 dev-util/nvchecker/metadata.xml          |   3 -
 dev-util/nvchecker/nvchecker-2.19.ebuild | 140 +++++++++----------------------
 2 files changed, 40 insertions(+), 103 deletions(-)

diff --git a/dev-util/nvchecker/metadata.xml b/dev-util/nvchecker/metadata.xml
index ed064adcfe..74f5dd76d9 100644
--- a/dev-util/nvchecker/metadata.xml
+++ b/dev-util/nvchecker/metadata.xml
@@ -8,7 +8,4 @@
   <upstream>
     <remote-id type="github">lilydjwg/nvchecker</remote-id>
   </upstream>
-  <use>
-    <flag name="aiohttp">use dev-python/aiohttp instead of dev-python/tornado 
for the fetching backend (not recommended)</flag>
-  </use>
 </pkgmetadata>

diff --git a/dev-util/nvchecker/nvchecker-2.19.ebuild 
b/dev-util/nvchecker/nvchecker-2.19.ebuild
index 8e5278ac5e..e7e1897784 100644
--- a/dev-util/nvchecker/nvchecker-2.19.ebuild
+++ b/dev-util/nvchecker/nvchecker-2.19.ebuild
@@ -4,7 +4,7 @@
 EAPI=8
 PYTHON_COMPAT=( python3_{11..14} )
 DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1
+inherit distutils-r1 optfeature
 
 DESCRIPTION="New version checker for software releases"
 HOMEPAGE="https://github.com/lilydjwg/nvchecker/";
@@ -14,118 +14,34 @@ 
SRC_URI="https://github.com/lilydjwg/nvchecker/archive/refs/tags/v${PV}.tar.gz -
 LICENSE="MIT"
 SLOT="0"
 KEYWORDS="~amd64"
-IUSE="aiohttp"
+PROPERTIES="test_network"
+RESTRICT="test"
 
 RDEPEND="
        dev-python/structlog[${PYTHON_USEDEP}]
-       !aiohttp? (
-               dev-python/pycurl[${PYTHON_USEDEP}]
-               dev-python/tornado[${PYTHON_USEDEP}]
-       )
-       aiohttp? (
+       || (
+               (
+                       dev-python/pycurl[${PYTHON_USEDEP}]
+                       dev-python/tornado[${PYTHON_USEDEP}]
+               )
                dev-python/aiohttp[${PYTHON_USEDEP}]
        )
 "
 BDEPEND="
        test? (
+               dev-python/jq[${PYTHON_USEDEP}]
+               dev-python/lxml[${PYTHON_USEDEP}]
                dev-python/pytest-asyncio[${PYTHON_USEDEP}]
                dev-python/pytest-httpbin[${PYTHON_USEDEP}]
+               $(python_gen_cond_dep \
+                       'dev-python/zstandard[${PYTHON_USEDEP}]' 
python3_{11..13})
        )
 "
 
-EPYTEST_DESELECT=(
-       # Needs network
-       tests/test_android_sdk.py::test_android_addon
-       tests/test_android_sdk.py::test_android_list
-       tests/test_android_sdk.py::test_android_package
-       tests/test_android_sdk.py::test_android_package_channel
-       tests/test_android_sdk.py::test_android_package_os
-       tests/test_android_sdk.py::test_android_package_os_missing
-       tests/test_anitya.py::test_anitya
-       tests/test_anitya.py::test_anitya_by_id
-       tests/test_apt.py::test_apt
-       tests/test_apt.py::test_apt_srcpkg
-       tests/test_apt.py::test_apt_strip_release
-       tests/test_archpkg.py::test_archpkg
-       tests/test_archpkg.py::test_archpkg_provided
-       tests/test_archpkg.py::test_archpkg_provided_strip
-       tests/test_archpkg.py::test_archpkg_strip_release
-       tests/test_aur.py::test_aur
-       tests/test_aur.py::test_aur_strip_release
-       tests/test_aur.py::test_aur_use_last_modified
-       tests/test_bitbucket.py::test_bitbucket
-       tests/test_bitbucket.py::test_bitbucket_max_tag
-       tests/test_bitbucket.py::test_bitbucket_max_tag_with_ignored
-       tests/test_bitbucket.py::test_bitbucket_sorted_tags
-       tests/test_container.py::test_container
-       tests/test_container.py::test_container_paging
-       tests/test_container.py::test_container_with_tag
-       tests/test_container.py::test_container_with_tag_and_multi_arch
-       tests/test_container.py::test_container_with_tag_and_registry
-       tests/test_cpan.py::test_cpan
-       tests/test_cran.py::test_cran
-       tests/test_cratesio.py::test_cratesio
-       tests/test_cratesio.py::test_cratesio_list
-       tests/test_cratesio.py::test_cratesio_skip_prerelease
-       tests/test_cratesio.py::test_cratesio_use_prerelease
-       tests/test_debianpkg.py::test_debianpkg
-       tests/test_debianpkg.py::test_debianpkg_strip_release
-       tests/test_debianpkg.py::test_debianpkg_suite
-       tests/test_gems.py::test_gems
-       tests/test_git.py::test_git
-       tests/test_git.py::test_git_commit
-       tests/test_git.py::test_git_commit_branch
-       tests/test_gitea.py::test_gitea
-       tests/test_gitea.py::test_gitea_latest_release
-       tests/test_gitea.py::test_gitea_max_tag_with_include
-       tests/test_gitlab.py::test_gitlab
-       tests/test_gitlab.py::test_gitlab_blm
-       tests/test_gitlab.py::test_gitlab_max_tag
-       tests/test_gitlab.py::test_gitlab_max_tag_with_ignored
-       tests/test_gitlab.py::test_gitlab_max_tag_with_include
-       tests/test_go.py::test_go
-       tests/test_hackage.py::test_hackage
-       tests/test_htmlparser.py::test_rss_feed
-       tests/test_htmlparser.py::test_xpath_element
-       tests/test_htmlparser.py::test_xpath_ok
-       tests/test_httpheader.py::test_redirection
-       tests/test_jq.py::test_jq
-       tests/test_jq.py::test_jq_filter
-       tests/test_launchpad.py::test_launchpad
-       tests/test_maven.py::test_maven
-       tests/test_maven.py::test_maven_cannot_find_release
-       tests/test_maven.py::test_maven_custom_repo
-       tests/test_maven.py::test_maven_non_existing_group
-       tests/test_npm.py::test_npm
-       tests/test_opam.py::test_opam_coq
-       tests/test_opam.py::test_opam_coq_trailing_slash
-       tests/test_opam.py::test_opam_official
-       tests/test_openvsx.py::test_openvsx
-       tests/test_packagist.py::test_packagist
-       tests/test_pagure.py::test_pagure
-       tests/test_pagure.py::test_pagure_with_alternative_host
-       tests/test_pagure.py::test_pagure_with_ignored
-       tests/test_pypi.py::test_pypi
-       tests/test_pypi.py::test_pypi_invalid_version
-       tests/test_pypi.py::test_pypi_list
-       tests/test_pypi.py::test_pypi_pre_release
-       tests/test_pypi.py::test_pypi_release
-       tests/test_pypi.py::test_pypi_yanked_version
-       tests/test_repology.py::test_repology
-       tests/test_repology.py::test_repology_bad_subrepo
-       tests/test_repology.py::test_repology_subrepo
-       tests/test_rpmrepo.py::test_rpmrepo_alma
-       tests/test_rpmrepo.py::test_rpmrepo_fedora
-       tests/test_snapcraft.py::test_snapcraft
-       tests/test_snapcraft.py::test_snapcraft_non_existent_channel
-       tests/test_snapcraft.py::test_snapcraft_non_existent_snap
-       tests/test_sparkle.py::test_sparkle
-       tests/test_ubuntupkg.py::test_ubuntupkg
-       tests/test_ubuntupkg.py::test_ubuntupkg_strip_release
-       tests/test_ubuntupkg.py::test_ubuntupkg_suite
-       tests/test_ubuntupkg.py::test_ubuntupkg_suite_with_paging
-       tests/test_vsmarketplace.py::test_vsmarketplace
+# NOTE: The network-reliant tests are really flaky, as the various websites
+#       don't always respond consistently, or may have changed their response.
 
+EPYTEST_DESELECT=(
        # Need missing python libraries
        tests/test_sortversion.py::test_awesomeversion  # awesomeversion
        tests/test_sortversion.py::test_vercmp  # pyalpm
@@ -161,8 +77,32 @@ EPYTEST_DESELECT=(
        tests/test_github.py::test_github_with_path_and_branch
 
        # "unconditional skip"
+       tests/test_apt.py::test_apt_deepin
        tests/test_mercurial.py::test_mercurial
+
+       # Currently failing due to upstream change. (nvchecker-2.19)
+       # Remove in the future
+       tests/test_rpmrepo.py::test_rpmrepo_fedora
 )
-# NOTE: With all these skips, only 29 tests actually get ran...
 
 distutils_enable_tests pytest
+
+pkg_postinst() {
+       if ! has_version "dev-python/pycurl[${PYTHON_USEDEP}]" || \
+               ! has_version "dev-python/tornado[${PYTHON_USEDEP}]"; then
+               ewarn "This program is using dev-python/aiohttp as networking 
backend"
+               ewarn "However, for the best results, upstream recommends 
installing the following:"
+               ewarn " - dev-python/tornado"
+               ewarn " - dev-python/pycurl"
+               ewarn
+       fi
+
+       optfeature "jq source" "dev-python/jq[${PYTHON_USEDEP}]"
+       optfeature "httpheader source" "dev-python/lxml[${PYTHON_USEDEP}]"
+       optfeature "pypi source" "dev-python/packaging[${PYTHON_USEDEP}]"
+       if use python_targets_python3_11 || \
+               use python_targets_python3_12 || \
+               use python_targets_python3_13; then
+               optfeature "rpmrepo source" 
"dev-python/zstandard[${PYTHON_USEDEP}]"
+       fi
+}

Reply via email to