diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2024-04-29 06:48:21 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2024-04-29 06:48:21 +0000 |
| commit | c9a0fb73fcabd036c3f0558f43466774a8634b2b (patch) | |
| tree | 84b12905bb413b4a8f94fef392dd422935a6427b /dev-python | |
| parent | dd72f433634be9d5f9f99cfdd2e2ff98f8d32ed4 (diff) | |
| download | baldeagleos-repo-c9a0fb73fcabd036c3f0558f43466774a8634b2b.tar.gz baldeagleos-repo-c9a0fb73fcabd036c3f0558f43466774a8634b2b.tar.xz baldeagleos-repo-c9a0fb73fcabd036c3f0558f43466774a8634b2b.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
40 files changed, 802 insertions, 2630 deletions
diff --git a/dev-python/Faker/Faker-24.14.1.ebuild b/dev-python/Faker/Faker-24.14.1.ebuild new file mode 100644 index 000000000000..b50c6e807fe1 --- /dev/null +++ b/dev-python/Faker/Faker-24.14.1.ebuild @@ -0,0 +1,43 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_NO_NORMALIZE=1 +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="A Python package that generates fake data for you" +HOMEPAGE=" + https://github.com/joke2k/faker/ + https://pypi.org/project/Faker/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}] + !dev-ruby/faker +" +BDEPEND=" + test? ( + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP},tiff] + dev-python/validators[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin + local EPYTEST_DESELECT=( + tests/providers/test_job.py::TestCsCZ::test_job + ) + epytest +} diff --git a/dev-python/Faker/Manifest b/dev-python/Faker/Manifest index f328105144da..aea51bc45180 100644 --- a/dev-python/Faker/Manifest +++ b/dev-python/Faker/Manifest @@ -1,3 +1,4 @@ DIST Faker-24.11.0.tar.gz 1726502 BLAKE2B 52429b5b0db4e1fd55d2a4b30ed007417f37e36fbec8d4fe43dea316920d85877668f4e66107011fef5874b74b25c1465fcfc0990ee3f40810df064622bb5373 SHA512 d5ee8c7c048d113c37b13608406d96966745ab46b095fcb30c9107a27a7af909c9d4d6bf9c7bb478ad7d0604b3cb6b33b93b0ba9e1a321c20870d651f57617a5 DIST Faker-24.14.0.tar.gz 1732995 BLAKE2B 809773a97b417827db72172c3ba68ccf814974771abfde1609087369667b2889c7c118c2b1f4d250c2d67252c33e384d1bc0048f7bb7c5ae790a62486650b4aa SHA512 d767d4e7c7bb96b137f82f51c20dd211b1d94c79384bdcf81f73591e68457e51f884103c6a0569264712bad334774e8f0a909e94d028b9c2ec741211ea69e77b +DIST Faker-24.14.1.tar.gz 1759770 BLAKE2B e58feb12255de946b6c10cd9e3098f4423a47554e6aafcabb1094c7aab7e0dbbd2eea2077411094611c64b92307060c5da383390dc4a14545a9fe54b654e20e7 SHA512 d6afa8c25fe223999bdc776a7c2c12c43e9ad5886d6bb4744fe29c8b358def151b251a37a74a8576e5daedae360c19146f870a1438b63763ffb74b1577a5ae2f DIST Faker-24.8.0.tar.gz 1725365 BLAKE2B b2646766b993d946bf7965133b7484408370a2e8bed9091b713ffd427d545bb708027066b6787a78cd675659b4d342ac86c9f611aecfb7df3d0565a8066925f0 SHA512 d8fe7e411052bec485b40540317c88ff5aeae8a32ef2e53214816b190d4730c9f5af9157ac2c66aba5fbc887e995d0238f71deefdcf67300e49586c7995b60ff diff --git a/dev-python/agate/Manifest b/dev-python/agate/Manifest index bcd2767c04db..2d7ff2d25d11 100644 --- a/dev-python/agate/Manifest +++ b/dev-python/agate/Manifest @@ -1,3 +1 @@ -DIST agate-1.10.0.tar.gz 202845 BLAKE2B da462a47d8b33e6b5948bc16a9c236ee62c92d56f49df8a7e60cebc84b2d4d828f986f6f0975d24d1d513e1e8023dd5e570f77ff6ae233533ab1ac3c512fac81 SHA512 37e09f1fcccd5df9183cfd32f13bf23efad7987a3d71600e52b1b3bc9de8669640aa50f045c975c0fc8958cbe9df193e17f0ea52c1933782cca95ac267f794f9 DIST agate-1.10.1.tar.gz 203139 BLAKE2B 656cc5f9abcc38848560bb81a9e7b1a8cf498897ea49a98bd3b44f3d625c69047ef3fa32b4a7191d8807c1bee29bd0c5a8d0ed99e1b91e30ea294b8fb436fb3d SHA512 b039fa587d1fc49277860f9876ad1f885f2530e82888ad8a32066f35e3086b5da0cb7aa9a2ed09ea7992efe649d32df27a372f85e4a06e8aca0d6ec8651567b5 -DIST agate-1.9.1.tar.gz 202303 BLAKE2B a5e62ca5fdf8dc6e1b7393da3efa0432a2d7a89bcb2af744458ae04446ea85941968f1ee75facc6b29de9fdec92f9432d2b939392edbfadc5c0598a91feb9f76 SHA512 f8bbe9ed24c786063a1d99aa408a2e5b4841dd9d804004b8c74a272d564432013e0ddebc5325e73893c53a60636d64f27f2e64ad624a468a070cf6a8833b8620 diff --git a/dev-python/agate/agate-1.10.0.ebuild b/dev-python/agate/agate-1.10.0.ebuild deleted file mode 100644 index 2d595fd7df94..000000000000 --- a/dev-python/agate/agate-1.10.0.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2021-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8,9,10,11,12} ) - -inherit distutils-r1 pypi - -DESCRIPTION="A Python data analysis library that is optimized for humans instead of machines" -HOMEPAGE=" - https://github.com/wireservice/agate/ - https://pypi.org/project/agate/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~riscv ~arm64-macos ~x64-macos" - -RDEPEND=" - >=dev-python/pytimeparse-1.1.5[${PYTHON_USEDEP}] - >=dev-python/parsedatetime-2.1[${PYTHON_USEDEP}] - >=dev-python/Babel-2.0[${PYTHON_USEDEP}] - >=dev-python/isodate-0.5.4[${PYTHON_USEDEP}] - >=dev-python/pyicu-2.4.2[${PYTHON_USEDEP}] - >=dev-python/python-slugify-1.2.1[${PYTHON_USEDEP}] - >=dev-python/leather-0.3.3-r2[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - >=dev-python/cssselect-0.9.1[${PYTHON_USEDEP}] - dev-python/lxml[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest -distutils_enable_sphinx docs \ - dev-python/furo - -EPYTEST_DESELECT=( - # require specific locales - tests/test_data_types.py::TestDate::test_cast_format_locale - tests/test_data_types.py::TestDateTime::test_cast_format_locale -) diff --git a/dev-python/agate/agate-1.9.1.ebuild b/dev-python/agate/agate-1.9.1.ebuild deleted file mode 100644 index 2d595fd7df94..000000000000 --- a/dev-python/agate/agate-1.9.1.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2021-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8,9,10,11,12} ) - -inherit distutils-r1 pypi - -DESCRIPTION="A Python data analysis library that is optimized for humans instead of machines" -HOMEPAGE=" - https://github.com/wireservice/agate/ - https://pypi.org/project/agate/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~riscv ~arm64-macos ~x64-macos" - -RDEPEND=" - >=dev-python/pytimeparse-1.1.5[${PYTHON_USEDEP}] - >=dev-python/parsedatetime-2.1[${PYTHON_USEDEP}] - >=dev-python/Babel-2.0[${PYTHON_USEDEP}] - >=dev-python/isodate-0.5.4[${PYTHON_USEDEP}] - >=dev-python/pyicu-2.4.2[${PYTHON_USEDEP}] - >=dev-python/python-slugify-1.2.1[${PYTHON_USEDEP}] - >=dev-python/leather-0.3.3-r2[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - >=dev-python/cssselect-0.9.1[${PYTHON_USEDEP}] - dev-python/lxml[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest -distutils_enable_sphinx docs \ - dev-python/furo - -EPYTEST_DESELECT=( - # require specific locales - tests/test_data_types.py::TestDate::test_cast_format_locale - tests/test_data_types.py::TestDateTime::test_cast_format_locale -) diff --git a/dev-python/backports-tarfile/backports-tarfile-1.1.1.ebuild b/dev-python/backports-tarfile/backports-tarfile-1.1.1.ebuild index f78088270820..079569048ee0 100644 --- a/dev-python/backports-tarfile/backports-tarfile-1.1.1.ebuild +++ b/dev-python/backports-tarfile/backports-tarfile-1.1.1.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 arm arm64 ~ia64 ~m68k ppc ppc64 ~riscv ~s390 x86" +KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" BDEPEND=" test? ( diff --git a/dev-python/blinker/Manifest b/dev-python/blinker/Manifest index 2ae80643348a..0493698cb32f 100644 --- a/dev-python/blinker/Manifest +++ b/dev-python/blinker/Manifest @@ -1,2 +1,3 @@ DIST blinker-1.7.0.tar.gz 28134 BLAKE2B afff064a79ae7ab9fcee46c7eb3f6557bd9149be0a10cddfd13f969649a7aa57cec727cc6a10c54af2f676b8dc9be69beaf6521b5764555ac3e97fda7b68f5f8 SHA512 b55dc104fd69bf9f682184202f9da7cb6925e7e863f38d5ad5b4b5988b2315aae02da6f4c9f0ec34238b8d5b9b6eec52b06258d93e14416cda3e2b718d9aa60c DIST blinker-1.8.0.tar.gz 22598 BLAKE2B 80a08bc860acc049ea4bbc30dd23f74ed7b0507a6f4dd550a0fb946233445b930732300ddc2201f6217b0557c082fbc90774d64a587ed448d839ee1b085b0c09 SHA512 1862589712c8828b2d9b3d434f213017cd81b2de100290de126a0d796920bd34ac00a667cb3bc8811071c275001e4d1a0dd0cc3563d15ef4b2139769ae3d5ef3 +DIST blinker-1.8.1.tar.gz 23191 BLAKE2B 5d1b5016b24669b8f602beb650126a4da8a7aaee6d096200634206ae3ebcdcbb5d7f3bb554269a08e0aacba0dc7dcda1a2977aeb5c8ef5f38c81dc8892d786d5 SHA512 b6adada7f314369863070e830364833aade954e4cedca390643223d632c110a314856fb1c050402cad7e64959500c4d27d149ce7b682ee6bde99a69dc66ea495 diff --git a/dev-python/blinker/blinker-1.8.1.ebuild b/dev-python/blinker/blinker-1.8.1.ebuild new file mode 100644 index 000000000000..1313f056febb --- /dev/null +++ b/dev-python/blinker/blinker-1.8.1.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Fast, simple object-to-object and broadcast signaling" +HOMEPAGE=" + https://github.com/pallets-eco/blinker/ + https://pypi.org/project/blinker/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" + +BDEPEND=" + test? ( + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p asyncio +} diff --git a/dev-python/evernote2/evernote2-9999.ebuild b/dev-python/evernote2/evernote2-9999.ebuild index 2d521a3bd300..a6f5bc3afb92 100644 --- a/dev-python/evernote2/evernote2-9999.ebuild +++ b/dev-python/evernote2/evernote2-9999.ebuild @@ -6,6 +6,8 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( python3_{8,9,10,11,12} ) +inherit git-r3 distutils-r1 + DESCRIPTION="Unofficial Evernote SDK for Python 3" HOMEPAGE=" https://github.com/JackonYang/evernote2 @@ -13,7 +15,6 @@ HOMEPAGE=" " EGIT_REPO_URI="https://github.com/JackonYang/evernote2" -inherit git-r3 distutils-r1 LICENSE="Apache-2.0" diff --git a/dev-python/jaraco-context/jaraco-context-5.3.0.ebuild b/dev-python/jaraco-context/jaraco-context-5.3.0.ebuild index 514efea0a813..d8257d3ea477 100644 --- a/dev-python/jaraco-context/jaraco-context-5.3.0.ebuild +++ b/dev-python/jaraco-context/jaraco-context-5.3.0.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 arm arm64 ~ia64 ~m68k ppc ppc64 ~riscv ~s390 x86" +KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" $(python_gen_cond_dep ' diff --git a/dev-python/line-profiler/Manifest b/dev-python/line-profiler/Manifest index 75ea791ec272..accd2b2f3f35 100644 --- a/dev-python/line-profiler/Manifest +++ b/dev-python/line-profiler/Manifest @@ -1 +1,2 @@ DIST line_profiler-4.1.2.gh.tar.gz 100514 BLAKE2B 4e9fa1f2bcc39658f50b5832a8c2ee15090e03532d574cfa06db846beb191b8e2f19c82e5b03f91f2fc7b9de2a024e86909191982a03702690820972e10b7b2b SHA512 feb3f799770057b1b2dbc5601e497ce8fbc3f802e48e652b30486d453710c811bf46f3c22c0e706bbcce8cf4ef3c6e118bcc4917d8d72ff8bb0bb975324dfa16 +DIST line_profiler-4.1.3.gh.tar.gz 103226 BLAKE2B 209fe81bfd29cad1fe5866af792294d956a8f5d4d20948335a418aa0c7c3c5ff23e271c49cfc6cf228287cb1031e00a0f540fc88f52ccc3a0c329443de17b188 SHA512 cc8367b40558647f097e33152bd1d8b241720a1ed79c1f1930a7958e333cecdf38bc7d1ab0a8ebfb11e3251fa076966076ec42a8b633dfcb9de0c598c02b8b93 diff --git a/dev-python/line-profiler/line-profiler-4.1.3.ebuild b/dev-python/line-profiler/line-profiler-4.1.3.ebuild new file mode 100644 index 000000000000..8c182439c9f6 --- /dev/null +++ b/dev-python/line-profiler/line-profiler-4.1.3.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 + +MY_P=line_profiler-${PV} +DESCRIPTION="Line-by-line profiler" +HOMEPAGE=" + https://github.com/pyutils/line_profiler/ + https://pypi.org/project/line-profiler/ +" +SRC_URI=" + https://github.com/pyutils/line_profiler/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + dev-python/ipython[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + test? ( + dev-python/coverage[${PYTHON_USEDEP}] + dev-python/ubelt[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +export LINE_PROFILER_BUILD_METHOD=cython + +python_test() { + cd tests || die + epytest +} diff --git a/dev-python/myst-parser/Manifest b/dev-python/myst-parser/Manifest index f6840b6b8bd3..70070c31d18d 100644 --- a/dev-python/myst-parser/Manifest +++ b/dev-python/myst-parser/Manifest @@ -1,3 +1,4 @@ DIST MyST-Parser-2.0.0.gh.tar.gz 815453 BLAKE2B 8f5dd823c3c79d843b45a7a4819d5677b51a12f78db2c1ce9700eb6faa8c4f0bc167fb1d8cd947e89ffab85aec947ab527b67dc73ef4db97a393f700a4331738 SHA512 c47bdd773565e93c4714d318a70f9a8adab1be6e2a63c23175667fc4afb5da4d66b84e11176782c8202e9fd68883e74d444911ddfb0b91356c2ba07fa65f7ea4 DIST MyST-Parser-3.0.0.gh.tar.gz 823619 BLAKE2B 95d8f1c5a2ab442225079495fa4ebf3619d554bd3e6f469f6215a2458bad4fde3ca555dca591ac20537026765a8fda8a4fa9d85ca592251d9b699bba90782c59 SHA512 a91abfcb99b9b53cee6877d469c32a95c69c2fcbc9cfe6217451c0995e49dec89fe98cd5a1a5e408845985a10fbc21d4e3d8063f1d7a3d96781cb44352b3e806 +DIST MyST-Parser-3.0.1.gh.tar.gz 823769 BLAKE2B 2b8d84dc6a61abd7d168317bb80632172f01f109751b40c108828d0b2fb9c8536da32ff6c873cd3bc20b70c2613b25167eeee999ea9f2d59dfc914ac231120b2 SHA512 4c2b08e9307685c2ef02eee89becba1d6e9f67eba7ab6d5bb5b425f232ac0922bb31cb5df5d60a5ed0846a9314475bcd2cb073a0101f514455c2598340e4b441 DIST myst-parser-2.0.0-sphinx-7.2.patch 22443 BLAKE2B 994f0b2c419832e61cb006b1b45c01274970900bdcfcef3422d5331e88962a46884afbf5b27b5cb98ed349a426444ca4ff21810526cc34eae4cf074102f7b3de SHA512 707b2a69c81352d2900c91088ca137f6455e0006b0e7c798b6f03b9f0cac85489c27db662f5e6ab6e2cd52e10f1594aa54d5c6821c07c110ad138d0cf129ac65 diff --git a/dev-python/myst-parser/myst-parser-3.0.1.ebuild b/dev-python/myst-parser/myst-parser-3.0.1.ebuild new file mode 100644 index 000000000000..116346743dd9 --- /dev/null +++ b/dev-python/myst-parser/myst-parser-3.0.1.ebuild @@ -0,0 +1,58 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) + +inherit distutils-r1 + +MY_P=MyST-Parser-${PV} +DESCRIPTION="Extended commonmark compliant parser, with bridges to Sphinx" +HOMEPAGE=" + https://github.com/executablebooks/MyST-Parser/ + https://pypi.org/project/myst-parser/ +" +SRC_URI=" + https://github.com/executablebooks/MyST-Parser/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/docutils-0.18[${PYTHON_USEDEP}] + dev-python/jinja[${PYTHON_USEDEP}] + <dev-python/markdown-it-py-4[${PYTHON_USEDEP}] + >=dev-python/markdown-it-py-3.0[${PYTHON_USEDEP}] + <dev-python/mdit-py-plugins-0.5[${PYTHON_USEDEP}] + >=dev-python/mdit-py-plugins-0.4[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + <dev-python/sphinx-8[${PYTHON_USEDEP}] + >=dev-python/sphinx-6[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + dev-python/defusedxml[${PYTHON_USEDEP}] + <dev-python/linkify-it-py-3[${PYTHON_USEDEP}] + >=dev-python/linkify-it-py-2.0.0[${PYTHON_USEDEP}] + dev-python/pytest-regressions[${PYTHON_USEDEP}] + dev-python/pytest-param-files[${PYTHON_USEDEP}] + >=dev-python/sphinx-7.3[${PYTHON_USEDEP}] + dev-python/sphinx-pytest[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + default + + # unpin docutils + sed -i -e '/docutils/s:,<[0-9.]*::' pyproject.toml || die +} diff --git a/dev-python/pyqtgraph/Manifest b/dev-python/pyqtgraph/Manifest index 409be271eee6..0ffdb525dab5 100644 --- a/dev-python/pyqtgraph/Manifest +++ b/dev-python/pyqtgraph/Manifest @@ -1,3 +1,4 @@ DIST pyqtgraph-0.13.3.gh.tar.gz 1423224 BLAKE2B 6c054e243a95387f18c7f18a1d4375fac3a7ae3794902f72e8d75eaeea01e031422abb7bbd84bb94977c6ce14664fed4f66ebd9892f4200c3b3ccdd598ccbfd2 SHA512 a397fcf8fc2fcc5a212df9f4cd48dc07bc1ad9eb7a9b1283488eb52c236e054b01df02d04088a9d91679c4ae3ab7796cdf95cdbad06a6a585fbbcdb921f33617 DIST pyqtgraph-0.13.4.gh.tar.gz 1438293 BLAKE2B aaa1ccdf318dfdee0dfee73f8f7be99897d58114971569eb14cd9e32f404cabe08edf20e78301152ad9663bda0d1e8c589ff6af63799bfdc87dfe12ab3ac5a63 SHA512 9c5c276d1e191bbb72ce1ce66fcf2cfe34f5f31318bbc3069c634a77b0373b2df6a7572eccb3cfec9a45d225f5f5da71d6ca9db3f9ef520eaab27b76176a8904 DIST pyqtgraph-0.13.6.gh.tar.gz 2388348 BLAKE2B e0050e240b80be2448ebb998f3ea9bd51489c906512c2cb4c3e0684d6b57d093362c60eafff4aaea9262c9fa7464ffde32e8159e2694671ffe70109b5e412eef SHA512 e77a054494a01ce848685547811ad398e0c77f747c26f9f4be798465f874bfeb23f6c2e507ad1175bb747e3c9c2f0d22747eefda476c4e8c72fa892fa0bb4730 +DIST pyqtgraph-0.13.7.gh.tar.gz 2364456 BLAKE2B 3ce1a3eb177a2a6328f1b7354bf9d4a87ffedcf4fa75fa407bd2df708b91fe98e2500364220ac7395745c69ac86f4830ea58999d05af49850edc723a6ccad5a1 SHA512 91e06e143fec4b1a6fae5cc7112a1fb6b7e74c7a38605172aacc5639eb220e30c54694e419313c7bb8368ea5c5f45f41d58e4510735e63a7d6ef03cdbb0f05e9 diff --git a/dev-python/pyqtgraph/pyqtgraph-0.13.7.ebuild b/dev-python/pyqtgraph/pyqtgraph-0.13.7.ebuild new file mode 100644 index 000000000000..99f2c1148dd3 --- /dev/null +++ b/dev-python/pyqtgraph/pyqtgraph-0.13.7.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 + +DESCRIPTION="A pure-python graphics and GUI library built on PyQt and numpy" +HOMEPAGE=" + https://www.pyqtgraph.org/ + https://github.com/pyqtgraph/pyqtgraph/ + https://pypi.org/project/pyqtgraph/ +" +SRC_URI=" + https://github.com/pyqtgraph/pyqtgraph/archive/${P}.tar.gz + -> ${P}.gh.tar.gz +" +S=${WORKDIR}/${PN}-${P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +IUSE="opengl svg" +REQUIRED_USE="test? ( opengl svg )" + +RDEPEND=" + >=dev-python/numpy-1.22[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + dev-python/PyQt5[gui,widgets,opengl=,svg=,${PYTHON_USEDEP}] + opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] ) +" +BDEPEND=" + test? ( + dev-python/h5py[${PYTHON_USEDEP}] + dev-python/PyQt5[testlib,${PYTHON_USEDEP}] + dev-python/pytest-xvfb[${PYTHON_USEDEP}] + dev-vcs/git + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + distutils-r1_python_prepare_all + + if ! use opengl; then + rm -r pyqtgraph/opengl || die + fi +} + +python_test() { + local EPYTEST_DESELECT=( + # apparently fragile + tests/test_reload.py::test_reload + + # TODO + tests/exporters/test_svg.py::test_plotscene + tests/graphicsItems/test_ROI.py::test_PolyLineROI + + # pyside2 is normally skipped if not installed but these two + # fail if it is installed + # TODO: this could be due to USE flags, revisit when pyside2 + # gains py3.9 + 'pyqtgraph/examples/test_examples.py::testExamples[ DateAxisItem_QtDesigner.py - PySide2 ]' + 'pyqtgraph/examples/test_examples.py::testExamples[ designerExample.py - PySide2 ]' + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p xvfb +} diff --git a/dev-python/pytest-xdist/Manifest b/dev-python/pytest-xdist/Manifest index 483e783436fd..014754a9d137 100644 --- a/dev-python/pytest-xdist/Manifest +++ b/dev-python/pytest-xdist/Manifest @@ -1,2 +1,3 @@ DIST pytest-xdist-3.5.0.tar.gz 78977 BLAKE2B 94feaa236728688a993ed89825f4ccd67abd7a520d235790bbfc629173e5918695ac500d04de642f07d323325972512e3ad95f0ae18a9ea239da8c2f167ab1a5 SHA512 1b6a896c6c69c110d1f3aa634740ffced570bbb788b3474687fef20147a5480a8681886b04db0413f7db68db546236f9a7f37e1592a74d1145f6eb6d876216ca DIST pytest_xdist-3.6.0.tar.gz 83818 BLAKE2B e15935799675014a01524b850106c29b1e43efcdc965c5695ae727ba4c12af446dbaec662eb66022b3e553e311d456859e90c7cfb0f7b4d9d0f28c3184e2901a SHA512 d623d31fa3f441c7ac56b7740bdd205933b90c9784ae1bcbac185bdc2920f1a27fa51fa6e1b75392a3ae13a62c51e168925ce3040cc1f0d22e8d9906faebbc2e +DIST pytest_xdist-3.6.1.tar.gz 84060 BLAKE2B 01392bc1f5a1587f609fc0246235457ab92ca40b3c34c660c117fae1c2b8b98dc0cde345f42951d69c3b58732e0094c7618ed570a6e3ca41165e93e2d8cf9e84 SHA512 583a78d0adc05d81458bbdd5832c239581c0fcd9cad9edfd16fa78009c005c15bffec7ed074d9e18f1542393f62d9ccb2c9e0a96d825e9cff1faec123545a2a3 diff --git a/dev-python/pytest-xdist/pytest-xdist-3.6.1.ebuild b/dev-python/pytest-xdist/pytest-xdist-3.6.1.ebuild new file mode 100644 index 000000000000..a57260d72c26 --- /dev/null +++ b/dev-python/pytest-xdist/pytest-xdist-3.6.1.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Distributed testing and loop-on-failing modes" +HOMEPAGE=" + https://pypi.org/project/pytest-xdist/ + https://github.com/pytest-dev/pytest-xdist/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +RDEPEND=" + >=dev-python/execnet-2.1[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}] +" + +BDEPEND=" + dev-python/setuptools-scm[${PYTHON_USEDEP}] + test? ( + dev-python/filelock[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_test() { + # disable autoloading plugins in nested pytest calls + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + # since we disabled autoloading, force loading necessary plugins + local -x PYTEST_PLUGINS=xdist.plugin,xdist.looponfail + + epytest -o tmp_path_retention_count=1 +} diff --git a/dev-python/python-telegram-bot/files/python-telegram-bot-20.3-no-internet-tests.patch b/dev-python/python-telegram-bot/files/python-telegram-bot-20.3-no-internet-tests.patch deleted file mode 100644 index 1c7d71c756ca..000000000000 --- a/dev-python/python-telegram-bot/files/python-telegram-bot-20.3-no-internet-tests.patch +++ /dev/null @@ -1,704 +0,0 @@ ---- a/tests/_files/test_animation.py -+++ b/tests/_files/test_animation.py -@@ -69,11 +69,13 @@ class TestAnimationBase: - - - class TestAnimationWithoutRequest(TestAnimationBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, animation): - for attr in animation.__slots__: - assert getattr(animation, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(animation)) == len(set(mro_slots(animation))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, animation): - assert isinstance(animation, Animation) - assert isinstance(animation.file_id, str) -@@ -81,6 +83,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - assert animation.file_id - assert animation.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, animation): - assert animation.mime_type == self.mime_type - assert animation.file_name.startswith("game.gif") == self.file_name.startswith("game.gif") -@@ -98,6 +101,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - assert animation.thumb is animation.thumbnail - check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, animation): - json_dict = { - "file_id": self.animation_file_id, -@@ -118,6 +122,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - assert animation.mime_type == self.mime_type - assert animation.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, animation): - animation_dict = animation.to_dict() - -@@ -187,6 +192,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_animation(self, monkeypatch, bot, chat_id, animation): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["animation"] == animation.file_id -@@ -195,6 +201,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - assert await bot.send_animation(animation=animation, chat_id=chat_id) - - @pytest.mark.parametrize("bot_class", ["Bot", "ExtBot"]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_animation_thumb_deprecation_warning( - self, recwarn, monkeypatch, bot_class, bot, raw_bot, chat_id, animation - ): -@@ -216,6 +223,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"): - await bot.send_animation(chat_id, file, thumbnail=file, thumb=different_file) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, animation): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == animation.file_id ---- a/tests/_files/test_audio.py -+++ b/tests/_files/test_audio.py -@@ -70,11 +70,13 @@ class TestAudioBase: - - - class TestAudioWithoutRequest(TestAudioBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, audio): - for attr in audio.__slots__: - assert getattr(audio, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(audio)) == len(set(mro_slots(audio))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, audio): - # Make sure file has been uploaded. - assert isinstance(audio, Audio) -@@ -83,6 +85,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert audio.file_id - assert audio.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, audio): - assert audio.duration == self.duration - assert audio.performer is None -@@ -98,6 +101,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert audio.thumb is audio.thumbnail - check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, audio): - json_dict = { - "file_id": self.audio_file_id, -@@ -123,6 +127,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert json_audio.file_size == self.file_size - assert json_audio.thumbnail == audio.thumbnail - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, audio): - audio_dict = audio.to_dict() - -@@ -134,6 +139,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert audio_dict["file_size"] == audio.file_size - assert audio_dict["file_name"] == audio.file_name - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, audio): - a = Audio(audio.file_id, audio.file_unique_id, audio.duration) - b = Audio("", audio.file_unique_id, audio.duration) -@@ -154,6 +160,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert a != e - assert hash(a) != hash(e) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_audio(self, monkeypatch, bot, chat_id, audio): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["audio"] == audio.file_id -@@ -162,6 +169,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert await bot.send_audio(audio=audio, chat_id=chat_id) - - @pytest.mark.parametrize("bot_class", ["Bot", "ExtBot"]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_audio_thumb_deprecation_warning( - self, recwarn, monkeypatch, bot_class, bot, raw_bot, chat_id, audio - ): -@@ -214,6 +222,7 @@ class TestAudioWithoutRequest(TestAudioBase): - with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"): - await bot.send_audio(chat_id, file, thumbnail=file, thumb=different_file) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, audio): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == audio.file_id ---- a/tests/_files/test_chatphoto.py -+++ b/tests/_files/test_chatphoto.py -@@ -61,11 +61,13 @@ class TestChatPhotoBase: - - - class TestChatPhotoWithoutRequest(TestChatPhotoBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, chat_photo): - for attr in chat_photo.__slots__: - assert getattr(chat_photo, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(chat_photo)) == len(set(mro_slots(chat_photo))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, chat_photo): - json_dict = { - "small_file_id": self.chatphoto_small_file_id, -@@ -80,6 +82,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - assert chat_photo.small_file_unique_id == self.chatphoto_small_file_unique_id - assert chat_photo.big_file_unique_id == self.chatphoto_big_file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_to_dict(self, chat_photo): - chat_photo_dict = chat_photo.to_dict() - -@@ -121,6 +124,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - assert a != e - assert hash(a) != hash(e) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_chat_photo(self, monkeypatch, bot, super_group_id, chat_photo): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.parameters["photo"] == chat_photo.to_dict() -@@ -129,6 +133,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - message = await bot.set_chat_photo(photo=chat_photo, chat_id=super_group_id) - assert message - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_small_file_instance_method(self, monkeypatch, chat_photo): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == chat_photo.small_file_id -@@ -142,6 +147,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - monkeypatch.setattr(chat_photo.get_bot(), "get_file", make_assertion) - assert await chat_photo.get_small_file() - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_big_file_instance_method(self, monkeypatch, chat_photo): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == chat_photo.big_file_id ---- a/tests/_files/test_document.py -+++ b/tests/_files/test_document.py -@@ -65,11 +65,13 @@ class TestDocumentBase: - - - class TestDocumentWithoutRequest(TestDocumentBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, document): - for attr in document.__slots__: - assert getattr(document, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(document)) == len(set(mro_slots(document))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, document): - assert isinstance(document, Document) - assert isinstance(document.file_id, str) -@@ -77,6 +79,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert document.file_id - assert document.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, document): - assert document.file_size == self.file_size - assert document.mime_type == self.mime_type -@@ -90,6 +93,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert document.thumb is document.thumbnail - check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, document): - json_dict = { - "file_id": self.document_file_id, -@@ -109,6 +113,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert test_document.mime_type == self.mime_type - assert test_document.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, document): - document_dict = document.to_dict() - -@@ -119,6 +124,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert document_dict["mime_type"] == document.mime_type - assert document_dict["file_size"] == document.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, document): - a = Document(document.file_id, document.file_unique_id) - b = Document("", document.file_unique_id) -@@ -140,6 +146,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - await bot.send_document(chat_id=chat_id) - - @pytest.mark.parametrize("disable_content_type_detection", [True, False, None]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_document( - self, monkeypatch, bot, chat_id, document, disable_content_type_detection - ): -@@ -161,6 +168,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert message - - @pytest.mark.parametrize("bot_class", ["Bot", "ExtBot"]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_document_thumb_deprecation_warning( - self, recwarn, monkeypatch, bot_class, bot, raw_bot, chat_id, document - ): -@@ -208,6 +216,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"): - await bot.send_document(chat_id, file, thumbnail=file, thumb=different_file) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, document): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == document.file_id ---- a/tests/_files/test_inputmedia.py -+++ b/tests/_files/test_inputmedia.py -@@ -186,6 +186,7 @@ class TestInputMediaVideoWithoutRequest(TestInputMediaVideoBase): - assert input_media_video_dict["supports_streaming"] == input_media_video.supports_streaming - assert input_media_video_dict["has_spoiler"] == input_media_video.has_spoiler - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_video(self, video): # noqa: F811 - # fixture found in test_video - input_media_video = InputMediaVideo(video, caption="test 3") -@@ -258,6 +259,7 @@ class TestInputMediaPhotoWithoutRequest(TestInputMediaPhotoBase): - ] - assert input_media_photo_dict["has_spoiler"] == input_media_photo.has_spoiler - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_photo(self, photo): # noqa: F811 - # fixture found in test_photo - input_media_photo = InputMediaPhoto(photo, caption="test 2") -@@ -329,6 +331,7 @@ class TestInputMediaAnimationWithoutRequest(TestInputMediaAnimationBase): - assert input_media_animation_dict["duration"] == input_media_animation.duration - assert input_media_animation_dict["has_spoiler"] == input_media_animation.has_spoiler - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_animation(self, animation): # noqa: F811 - # fixture found in test_animation - input_media_animation = InputMediaAnimation(animation, caption="test 2") -@@ -411,6 +414,7 @@ class TestInputMediaAudioWithoutRequest(TestInputMediaAudioBase): - ce.to_dict() for ce in input_media_audio.caption_entities - ] - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_audio(self, audio): # noqa: F811 - # fixture found in test_audio - input_media_audio = InputMediaAudio(audio, caption="test 3") -@@ -496,6 +500,7 @@ class TestInputMediaDocumentWithoutRequest(TestInputMediaDocumentBase): - == input_media_document.disable_content_type_detection - ) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_document(self, document): # noqa: F811 - # fixture found in test_document - input_media_document = InputMediaDocument(document, caption="test 3") -@@ -559,6 +564,7 @@ def media_group_no_caption_only_parse_mode(photo, thumb): # noqa: F811 - - - class TestSendMediaGroupWithoutRequest: -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_media_group_throws_error_with_group_caption_and_individual_captions( - self, - bot, ---- a/tests/_files/test_photo.py -+++ b/tests/_files/test_photo.py -@@ -74,11 +74,13 @@ class TestPhotoBase: - - - class TestPhotoWithoutRequest(TestPhotoBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, photo): - for attr in photo.__slots__: - assert getattr(photo, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(photo)) == len(set(mro_slots(photo))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, thumb, photo): - # Make sure file has been uploaded. - assert isinstance(photo, PhotoSize) -@@ -93,6 +95,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - assert thumb.file_id - assert thumb.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, photo, thumb): - assert photo.width == self.width - assert photo.height == self.height -@@ -101,6 +104,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - assert thumb.height == 90 - assert thumb.file_size == 1477 - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, photo): - json_dict = { - "file_id": photo.file_id, -@@ -118,6 +122,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - assert json_photo.height == self.height - assert json_photo.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, photo): - photo_dict = photo.to_dict() - -@@ -128,6 +133,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - assert photo_dict["height"] == photo.height - assert photo_dict["file_size"] == photo.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, photo): - a = PhotoSize(photo.file_id, photo.file_unique_id, self.width, self.height) - b = PhotoSize("", photo.file_unique_id, self.width, self.height) -@@ -189,6 +195,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_photosize(self, monkeypatch, bot, chat_id, photo): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["photo"] == photo.file_id -@@ -196,6 +203,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - monkeypatch.setattr(bot.request, "post", make_assertion) - assert await bot.send_photo(photo=photo, chat_id=chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, photo): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == photo.file_id ---- a/tests/_files/test_sticker.py -+++ b/tests/_files/test_sticker.py -@@ -117,11 +117,13 @@ class TestStickerBase: - - - class TestStickerWithoutRequest(TestStickerBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, sticker): - for attr in sticker.__slots__: - assert getattr(sticker, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(sticker)) == len(set(mro_slots(sticker))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, sticker): - # Make sure file has been uploaded. - assert isinstance(sticker, Sticker) -@@ -136,6 +138,7 @@ class TestStickerWithoutRequest(TestStickerBase): - assert sticker.thumbnail.file_unique_id - assert isinstance(sticker.needs_repainting, bool) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, sticker): - assert sticker.width == self.width - assert sticker.height == self.height -@@ -164,6 +167,7 @@ class TestStickerWithoutRequest(TestStickerBase): - assert sticker.thumb is sticker.thumbnail - check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, sticker): - sticker_dict = sticker.to_dict() - -@@ -179,6 +183,7 @@ class TestStickerWithoutRequest(TestStickerBase): - assert sticker_dict["type"] == sticker.type - assert sticker_dict["needs_repainting"] == sticker.needs_repainting - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, sticker): - json_dict = { - "file_id": self.sticker_file_id, -@@ -212,6 +217,7 @@ class TestStickerWithoutRequest(TestStickerBase): - assert json_sticker.custom_emoji_id == self.custom_emoji_id - assert json_sticker.needs_repainting == self.needs_repainting - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, sticker): - a = Sticker( - sticker.file_id, -@@ -274,6 +280,7 @@ class TestStickerWithoutRequest(TestStickerBase): - with pytest.raises(TypeError): - await bot.send_sticker(chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_sticker(self, monkeypatch, bot, chat_id, sticker): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["sticker"] == sticker.file_id -@@ -565,6 +572,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase): - assert sticker_set.thumb is sticker_set.thumbnail - check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, sticker): - name = f"test_by_{bot.username}" - json_dict = { -@@ -588,6 +596,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase): - assert sticker_set.sticker_type == self.sticker_type - assert sticker_set.api_kwargs == {"contains_masks": self.contains_masks} - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_sticker_set_to_dict(self, sticker_set): - sticker_set_dict = sticker_set.to_dict() - -@@ -960,6 +969,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase): - assert recwarn[0].filename == __file__, "incorrect stacklevel!" - recwarn.clear() - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, sticker): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == sticker.file_id ---- a/tests/_files/test_video.py -+++ b/tests/_files/test_video.py -@@ -69,11 +69,13 @@ class TestVideoBase: - - - class TestVideoWithoutRequest(TestVideoBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, video): - for attr in video.__slots__: - assert getattr(video, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(video)) == len(set(mro_slots(video))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, video): - # Make sure file has been uploaded. - assert isinstance(video, Video) -@@ -88,6 +90,7 @@ class TestVideoWithoutRequest(TestVideoBase): - assert video.thumbnail.file_id - assert video.thumbnail.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, video): - assert video.width == self.width - assert video.height == self.height -@@ -130,6 +133,7 @@ class TestVideoWithoutRequest(TestVideoBase): - assert json_video.file_size == self.file_size - assert json_video.file_name == self.file_name - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, video): - video_dict = video.to_dict() - -@@ -143,6 +147,7 @@ class TestVideoWithoutRequest(TestVideoBase): - assert video_dict["file_size"] == video.file_size - assert video_dict["file_name"] == video.file_name - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, video): - a = Video(video.file_id, video.file_unique_id, self.width, self.height, self.duration) - b = Video("", video.file_unique_id, self.width, self.height, self.duration) -@@ -167,6 +172,7 @@ class TestVideoWithoutRequest(TestVideoBase): - with pytest.raises(TypeError): - await bot.send_video(chat_id=chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_video(self, monkeypatch, bot, chat_id, video): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["video"] == video.file_id -@@ -175,6 +181,7 @@ class TestVideoWithoutRequest(TestVideoBase): - assert await bot.send_video(chat_id, video=video) - - @pytest.mark.parametrize("bot_class", ["Bot", "ExtBot"]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_video_thumb_deprecation_warning( - self, recwarn, monkeypatch, bot_class, bot, raw_bot, chat_id, video - ): -@@ -228,6 +235,7 @@ class TestVideoWithoutRequest(TestVideoBase): - with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"): - await bot.send_video(chat_id, file, thumbnail=file, thumb=different_file) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, video): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == video.file_id ---- a/tests/_files/test_videonote.py -+++ b/tests/_files/test_videonote.py -@@ -63,11 +63,13 @@ class TestVideoNoteBase: - - - class TestVideoNoteWithoutRequest(TestVideoNoteBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, video_note): - for attr in video_note.__slots__: - assert getattr(video_note, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(video_note)) == len(set(mro_slots(video_note))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, video_note): - # Make sure file has been uploaded. - assert isinstance(video_note, VideoNote) -@@ -82,6 +84,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - assert video_note.thumbnail.file_id - assert video_note.thumbnail.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, video_note): - assert video_note.length == self.length - assert video_note.duration == self.duration -@@ -111,6 +114,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - assert json_video_note.duration == self.duration - assert json_video_note.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, video_note): - video_note_dict = video_note.to_dict() - -@@ -121,6 +125,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - assert video_note_dict["duration"] == video_note.duration - assert video_note_dict["file_size"] == video_note.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, video_note): - a = VideoNote(video_note.file_id, video_note.file_unique_id, self.length, self.duration) - b = VideoNote("", video_note.file_unique_id, self.length, self.duration) -@@ -145,6 +150,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - with pytest.raises(TypeError): - await bot.send_video_note(chat_id=chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_video_note(self, monkeypatch, bot, chat_id, video_note): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["video_note"] == video_note.file_id -@@ -153,6 +159,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - assert await bot.send_video_note(chat_id, video_note=video_note) - - @pytest.mark.parametrize("bot_class", ["Bot", "ExtBot"]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_video_note_thumb_deprecation_warning( - self, recwarn, monkeypatch, bot_class, bot, raw_bot, chat_id, video_note - ): -@@ -210,6 +217,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"): - await bot.send_video_note(chat_id, file, thumbnail=file, thumb=different_file) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, video_note): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == video_note.file_id ---- a/tests/_files/test_voice.py -+++ b/tests/_files/test_voice.py -@@ -58,11 +58,13 @@ class TestVoiceBase: - - - class TestVoiceWithoutRequest(TestVoiceBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, voice): - for attr in voice.__slots__: - assert getattr(voice, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(voice)) == len(set(mro_slots(voice))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_creation(self, voice): - # Make sure file has been uploaded. - assert isinstance(voice, Voice) -@@ -71,6 +73,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - assert voice.file_id - assert voice.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, voice): - assert voice.duration == self.duration - assert voice.mime_type == self.mime_type -@@ -93,6 +96,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - assert json_voice.mime_type == self.mime_type - assert json_voice.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, voice): - voice_dict = voice.to_dict() - -@@ -103,6 +107,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - assert voice_dict["mime_type"] == voice.mime_type - assert voice_dict["file_size"] == voice.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, voice): - a = Voice(voice.file_id, voice.file_unique_id, self.duration) - b = Voice("", voice.file_unique_id, self.duration) -@@ -135,6 +140,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - - assert await bot.send_voice(chat_id, voice_file, filename="custom_filename") - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_voice(self, monkeypatch, bot, chat_id, voice): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["voice"] == voice.file_id -@@ -164,6 +170,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, voice): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == voice.file_id ---- a/tests/request/test_request.py -+++ b/tests/request/test_request.py -@@ -418,6 +418,7 @@ class TestHTTPXRequestWithoutRequest: - assert self.test_flag["init"] == 1 - assert self.test_flag["shutdown"] == 1 - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_multiple_init_cycles(self): - # nothing really to assert - this should just not fail - httpx_request = HTTPXRequest() -@@ -430,6 +431,7 @@ class TestHTTPXRequestWithoutRequest: - with pytest.raises(ValueError, match="`http_version` must be either"): - HTTPXRequest(http_version="1.0") - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_http_1_response(self): - httpx_request = HTTPXRequest(http_version="1.1") - async with httpx_request: ---- a/tests/test_bot.py -+++ b/tests/test_bot.py -@@ -305,6 +305,7 @@ class TestBotWithoutRequest: - - assert self.test_flag == "stop" - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_equality(self): - async with make_bot(token=FALLBACKS[0]["token"]) as a, make_bot( - token=FALLBACKS[0]["token"] -@@ -346,6 +347,7 @@ class TestBotWithoutRequest: - finally: - await bot.shutdown() - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_me_and_properties(self, bot): - get_me_bot = await ExtBot(bot.token).get_me() - -@@ -383,6 +385,7 @@ class TestBotWithoutRequest: - @pytest.mark.parametrize( - ("cls", "logger_name"), [(Bot, "telegram.Bot"), (ExtBot, "telegram.ext.ExtBot")] - ) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_log_decorator(self, bot: PytestExtBot, cls, logger_name, caplog): - # Second argument makes sure that we ignore logs from e.g. httpx - with caplog.at_level(logging.DEBUG, logger="telegram"): -@@ -1418,6 +1421,7 @@ class TestBotWithoutRequest: - - @pytest.mark.parametrize("json_keyboard", [True, False]) - @pytest.mark.parametrize("caption", ["<b>Test</b>", "", None]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_copy_message( - self, monkeypatch, bot, chat_id, media_message, json_keyboard, caption - ): ---- a/tests/test_forum.py -+++ b/tests/test_forum.py -@@ -73,6 +73,7 @@ async def real_topic(bot, emoji_id, forum_group_id): - assert result is True, "Topic was not deleted" - - -+@pytest.mark.skip(reason="Requires internet connection") - class TestForumTopicWithoutRequest: - def test_slot_behaviour(self, forum_topic_object): - inst = forum_topic_object -@@ -336,6 +337,7 @@ class TestForumTopicCreatedWithoutRequest: - assert action_dict["name"] == TEST_TOPIC_NAME - assert action_dict["icon_color"] == TEST_TOPIC_ICON_COLOR - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, emoji_id): - a = ForumTopicCreated(name=TEST_TOPIC_NAME, icon_color=TEST_TOPIC_ICON_COLOR) - b = ForumTopicCreated( diff --git a/dev-python/python-telegram-bot/files/python-telegram-bot-20.5-no-internet-tests.patch b/dev-python/python-telegram-bot/files/python-telegram-bot-20.5-no-internet-tests.patch deleted file mode 100644 index 41c9840ed60c..000000000000 --- a/dev-python/python-telegram-bot/files/python-telegram-bot-20.5-no-internet-tests.patch +++ /dev/null @@ -1,324 +0,0 @@ -diff --git a/tests/_files/test_animation.py b/tests/_files/test_animation.py -index 23ec3b50..a7230495 100644 ---- a/tests/_files/test_animation.py -+++ b/tests/_files/test_animation.py -@@ -65,6 +65,7 @@ class TestAnimationBase: - - - class TestAnimationWithoutRequest(TestAnimationBase): -+ __test__ = False - def test_slot_behaviour(self, animation): - for attr in animation.__slots__: - assert getattr(animation, attr, "err") != "err", f"got extra slot '{attr}'" -diff --git a/tests/_files/test_audio.py b/tests/_files/test_audio.py -index 3ea394d0..6a7c47e4 100644 ---- a/tests/_files/test_audio.py -+++ b/tests/_files/test_audio.py -@@ -66,6 +66,7 @@ class TestAudioBase: - - - class TestAudioWithoutRequest(TestAudioBase): -+ __test__ = False - def test_slot_behaviour(self, audio): - for attr in audio.__slots__: - assert getattr(audio, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -196,6 +197,7 @@ class TestAudioWithoutRequest(TestAudioBase): - - - class TestAudioWithRequest(TestAudioBase): -+ __test__ = False - async def test_send_all_args(self, bot, chat_id, audio_file, thumb_file): - message = await bot.send_audio( - chat_id, -diff --git a/tests/_files/test_chatphoto.py b/tests/_files/test_chatphoto.py -index d09876e2..65c3e213 100644 ---- a/tests/_files/test_chatphoto.py -+++ b/tests/_files/test_chatphoto.py -@@ -61,6 +61,7 @@ class TestChatPhotoBase: - - - class TestChatPhotoWithoutRequest(TestChatPhotoBase): -+ __test__ = False - def test_slot_behaviour(self, chat_photo): - for attr in chat_photo.__slots__: - assert getattr(chat_photo, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -155,6 +156,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - - - class TestChatPhotoWithRequest: -+ __test__ = False - async def test_get_and_download(self, bot, chat_photo, tmp_file): - tasks = {bot.get_file(chat_photo.small_file_id), bot.get_file(chat_photo.big_file_id)} - asserts = [] -diff --git a/tests/_files/test_document.py b/tests/_files/test_document.py -index f5ccdbeb..f22cef77 100644 ---- a/tests/_files/test_document.py -+++ b/tests/_files/test_document.py -@@ -61,6 +61,7 @@ class TestDocumentBase: - - - class TestDocumentWithoutRequest(TestDocumentBase): -+ __test__ = False - def test_slot_behaviour(self, document): - for attr in document.__slots__: - assert getattr(document, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -190,6 +191,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - - - class TestDocumentWithRequest(TestDocumentBase): -+ __test__ = False - async def test_error_send_empty_file(self, bot, chat_id): - with Path(os.devnull).open("rb") as f, pytest.raises(TelegramError): - await bot.send_document(chat_id=chat_id, document=f) -diff --git a/tests/_files/test_inputmedia.py b/tests/_files/test_inputmedia.py -index f00dd165..bb4252f4 100644 ---- a/tests/_files/test_inputmedia.py -+++ b/tests/_files/test_inputmedia.py -@@ -179,6 +179,7 @@ class TestInputMediaVideoWithoutRequest(TestInputMediaVideoBase): - assert input_media_video_dict["supports_streaming"] == input_media_video.supports_streaming - assert input_media_video_dict["has_spoiler"] == input_media_video.has_spoiler - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_video(self, video): # noqa: F811 - # fixture found in test_video - input_media_video = InputMediaVideo(video, caption="test 3") -@@ -242,7 +243,8 @@ class TestInputMediaPhotoWithoutRequest(TestInputMediaPhotoBase): - ce.to_dict() for ce in input_media_photo.caption_entities - ] - assert input_media_photo_dict["has_spoiler"] == input_media_photo.has_spoiler -- -+ -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_photo(self, photo): # noqa: F811 - # fixture found in test_photo - input_media_photo = InputMediaPhoto(photo, caption="test 2") -@@ -307,7 +309,8 @@ class TestInputMediaAnimationWithoutRequest(TestInputMediaAnimationBase): - assert input_media_animation_dict["height"] == input_media_animation.height - assert input_media_animation_dict["duration"] == input_media_animation.duration - assert input_media_animation_dict["has_spoiler"] == input_media_animation.has_spoiler -- -+ -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_animation(self, animation): # noqa: F811 - # fixture found in test_animation - input_media_animation = InputMediaAnimation(animation, caption="test 2") -@@ -375,7 +378,8 @@ class TestInputMediaAudioWithoutRequest(TestInputMediaAudioBase): - assert input_media_audio_dict["caption_entities"] == [ - ce.to_dict() for ce in input_media_audio.caption_entities - ] -- -+ -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_audio(self, audio): # noqa: F811 - # fixture found in test_audio - input_media_audio = InputMediaAudio(audio, caption="test 3") -@@ -447,6 +451,7 @@ class TestInputMediaDocumentWithoutRequest(TestInputMediaDocumentBase): - == input_media_document.disable_content_type_detection - ) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_document(self, document): # noqa: F811 - # fixture found in test_document - input_media_document = InputMediaDocument(document, caption="test 3") -@@ -502,6 +507,7 @@ def media_group_no_caption_only_parse_mode(photo, thumb): # noqa: F811 - - - class TestSendMediaGroupWithoutRequest: -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_media_group_throws_error_with_group_caption_and_individual_captions( - self, - bot, -@@ -601,6 +607,7 @@ class CustomSequence(Sequence): - - - class TestSendMediaGroupWithRequest: -+ __test__ = False - async def test_send_media_group_photo(self, bot, chat_id, media_group): - messages = await bot.send_media_group(chat_id, media_group) - assert isinstance(messages, tuple) -diff --git a/tests/_files/test_photo.py b/tests/_files/test_photo.py -index 9f85bec5..263eb933 100644 ---- a/tests/_files/test_photo.py -+++ b/tests/_files/test_photo.py -@@ -74,6 +74,7 @@ class TestPhotoBase: - - - class TestPhotoWithoutRequest(TestPhotoBase): -+ __test__ = False - def test_slot_behaviour(self, photo): - for attr in photo.__slots__: - assert getattr(photo, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -211,6 +212,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - - - class TestPhotoWithRequest(TestPhotoBase): -+ __test__ = False - async def test_send_photo_all_args(self, bot, chat_id, photo_file): - message = await bot.send_photo( - chat_id, -diff --git a/tests/_files/test_sticker.py b/tests/_files/test_sticker.py -index c8b9b02a..8c8c9c56 100644 ---- a/tests/_files/test_sticker.py -+++ b/tests/_files/test_sticker.py -@@ -115,6 +115,7 @@ class TestStickerBase: - - - class TestStickerWithoutRequest(TestStickerBase): -+ __test__ = False - def test_slot_behaviour(self, sticker): - for attr in sticker.__slots__: - assert getattr(sticker, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -289,6 +290,7 @@ class TestStickerWithoutRequest(TestStickerBase): - - - class TestStickerWithRequest(TestStickerBase): -+ __test__ = False - async def test_send_all_args(self, bot, chat_id, sticker_file, sticker): - message = await bot.send_sticker( - chat_id, sticker=sticker_file, disable_notification=False, protect_content=True -@@ -526,6 +528,7 @@ class TestStickerSetBase: - - - class TestStickerSetWithoutRequest(TestStickerSetBase): -+ __test__ = False - def test_slot_behaviour(self): - inst = StickerSet("this", "is", True, self.stickers, True, "not") - for attr in inst.__slots__: -diff --git a/tests/_files/test_video.py b/tests/_files/test_video.py -index b2ec1098..d181ffa0 100644 ---- a/tests/_files/test_video.py -+++ b/tests/_files/test_video.py -@@ -65,6 +65,7 @@ class TestVideoBase: - - - class TestVideoWithoutRequest(TestVideoBase): -+ __test__ = False - def test_slot_behaviour(self, video): - for attr in video.__slots__: - assert getattr(video, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -203,6 +204,7 @@ class TestVideoWithoutRequest(TestVideoBase): - - - class TestVideoWithRequest(TestVideoBase): -+ __test__ = False - async def test_send_all_args(self, bot, chat_id, video_file, video, thumb_file): - message = await bot.send_video( - chat_id, -diff --git a/tests/_files/test_videonote.py b/tests/_files/test_videonote.py -index b931678d..223f2541 100644 ---- a/tests/_files/test_videonote.py -+++ b/tests/_files/test_videonote.py -@@ -59,6 +59,7 @@ class TestVideoNoteBase: - - - class TestVideoNoteWithoutRequest(TestVideoNoteBase): -+ __test__ = False - def test_slot_behaviour(self, video_note): - for attr in video_note.__slots__: - assert getattr(video_note, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -190,6 +191,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - - - class TestVideoNoteWithRequest(TestVideoNoteBase): -+ __test__ = False - async def test_send_all_args(self, bot, chat_id, video_note_file, video_note, thumb_file): - message = await bot.send_video_note( - chat_id, -diff --git a/tests/_files/test_voice.py b/tests/_files/test_voice.py -index b29260d5..14cdbba7 100644 ---- a/tests/_files/test_voice.py -+++ b/tests/_files/test_voice.py -@@ -58,6 +58,7 @@ class TestVoiceBase: - - - class TestVoiceWithoutRequest(TestVoiceBase): -+ __test__ = False - def test_slot_behaviour(self, voice): - for attr in voice.__slots__: - assert getattr(voice, attr, "err") != "err", f"got extra slot '{attr}'" -@@ -177,6 +178,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - - - class TestVoiceWithRequest(TestVoiceBase): -+ __test__ = False - async def test_send_all_args(self, bot, chat_id, voice_file, voice): - message = await bot.send_voice( - chat_id, -diff --git a/tests/request/test_request.py b/tests/request/test_request.py -index 9334f7b7..fd3672b9 100644 ---- a/tests/request/test_request.py -+++ b/tests/request/test_request.py -@@ -85,6 +85,7 @@ class TestNoSocksHTTP2WithoutRequest: - - @pytest.mark.skipif(not TEST_WITH_OPT_DEPS, reason="Optional dependencies not installed") - class TestHTTP2WithRequest: -+ __test__ = False - @pytest.mark.parametrize("http_version", ["2", "2.0"]) - async def test_http_2_response(self, http_version): - httpx_request = HTTPXRequest(http_version=http_version) -@@ -352,6 +353,7 @@ class TestRequestWithoutRequest: - - @pytest.mark.skipif(not TEST_WITH_OPT_DEPS, reason="No need to run this twice") - class TestHTTPXRequestWithoutRequest: -+ __test__ = False - test_flag = None - - @pytest.fixture(autouse=True) -@@ -621,6 +623,7 @@ class TestHTTPXRequestWithoutRequest: - - @pytest.mark.skipif(not TEST_WITH_OPT_DEPS, reason="No need to run this twice") - class TestHTTPXRequestWithRequest: -+ __test__ = False - async def test_do_request_wait_for_pool(self, httpx_request): - """The pool logic is buried rather deeply in httpxcore, so we make actual requests here - instead of mocking""" -diff --git a/tests/test_bot.py b/tests/test_bot.py -index d813d9f2..e580c68b 100644 ---- a/tests/test_bot.py -+++ b/tests/test_bot.py -@@ -196,6 +196,7 @@ class InputMessageContentDWPP(InputMessageContent): - - - class TestBotWithoutRequest: -+ __test__ = False - """ - Most are executed on tg.ext.ExtBot, as that class only extends the functionality of tg.bot - -@@ -1791,6 +1792,7 @@ class TestBotWithoutRequest: - - - class TestBotWithRequest: -+ __test__ = False - """ - Most are executed on tg.ext.ExtBot, as that class only extends the functionality of tg.bot - -diff --git a/tests/test_forum.py b/tests/test_forum.py -index d367fc9c..17c5130a 100644 ---- a/tests/test_forum.py -+++ b/tests/test_forum.py -@@ -74,6 +74,7 @@ async def real_topic(bot, emoji_id, forum_group_id): - - - class TestForumTopicWithoutRequest: -+ __test__ = False - def test_slot_behaviour(self, forum_topic_object): - inst = forum_topic_object - for attr in inst.__slots__: -@@ -154,6 +155,7 @@ class TestForumTopicWithoutRequest: - - - class TestForumMethodsWithRequest: -+ __test__ = False - async def test_create_forum_topic(self, real_topic): - result = real_topic - assert isinstance(result, ForumTopic) -@@ -349,7 +351,8 @@ class TestForumTopicCreatedWithoutRequest: - assert isinstance(action_dict, dict) - assert action_dict["name"] == TEST_TOPIC_NAME - assert action_dict["icon_color"] == TEST_TOPIC_ICON_COLOR -- -+ -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, emoji_id): - a = ForumTopicCreated(name=TEST_TOPIC_NAME, icon_color=TEST_TOPIC_ICON_COLOR) - b = ForumTopicCreated( diff --git a/dev-python/python-telegram-bot/files/python-telegram-bot-20.6-no-internet-tests.patch b/dev-python/python-telegram-bot/files/python-telegram-bot-20.6-no-internet-tests.patch deleted file mode 100644 index 8718aaa03861..000000000000 --- a/dev-python/python-telegram-bot/files/python-telegram-bot-20.6-no-internet-tests.patch +++ /dev/null @@ -1,718 +0,0 @@ -diff --git a/tests/_files/test_animation.py b/tests/_files/test_animation.py -index 23ec3b50..d5b3775d 100644 ---- a/tests/_files/test_animation.py -+++ b/tests/_files/test_animation.py -@@ -65,11 +65,13 @@ class TestAnimationBase: - - - class TestAnimationWithoutRequest(TestAnimationBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, animation): - for attr in animation.__slots__: - assert getattr(animation, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(animation)) == len(set(mro_slots(animation))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, animation): - assert isinstance(animation, Animation) - assert isinstance(animation.file_id, str) -@@ -77,11 +79,13 @@ class TestAnimationWithoutRequest(TestAnimationBase): - assert animation.file_id - assert animation.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, animation): - assert animation.mime_type == self.mime_type - assert animation.file_name.startswith("game.gif") == self.file_name.startswith("game.gif") - assert isinstance(animation.thumbnail, PhotoSize) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, animation): - json_dict = { - "file_id": self.animation_file_id, -@@ -102,6 +106,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - assert animation.mime_type == self.mime_type - assert animation.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, animation): - animation_dict = animation.to_dict() - -@@ -171,6 +176,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_animation(self, monkeypatch, bot, chat_id, animation): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["animation"] == animation.file_id -@@ -178,6 +184,7 @@ class TestAnimationWithoutRequest(TestAnimationBase): - monkeypatch.setattr(bot.request, "post", make_assertion) - assert await bot.send_animation(animation=animation, chat_id=chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, animation): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == animation.file_id -diff --git a/tests/_files/test_audio.py b/tests/_files/test_audio.py -index 3ea394d0..17a9388b 100644 ---- a/tests/_files/test_audio.py -+++ b/tests/_files/test_audio.py -@@ -66,11 +66,13 @@ class TestAudioBase: - - - class TestAudioWithoutRequest(TestAudioBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, audio): - for attr in audio.__slots__: - assert getattr(audio, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(audio)) == len(set(mro_slots(audio))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, audio): - # Make sure file has been uploaded. - assert isinstance(audio, Audio) -@@ -79,6 +81,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert audio.file_id - assert audio.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, audio): - assert audio.duration == self.duration - assert audio.performer is None -@@ -89,6 +92,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert audio.thumbnail.width == self.thumb_width - assert audio.thumbnail.height == self.thumb_height - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, audio): - json_dict = { - "file_id": self.audio_file_id, -@@ -114,6 +118,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert json_audio.file_size == self.file_size - assert json_audio.thumbnail == audio.thumbnail - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, audio): - audio_dict = audio.to_dict() - -@@ -125,6 +130,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert audio_dict["file_size"] == audio.file_size - assert audio_dict["file_name"] == audio.file_name - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, audio): - a = Audio(audio.file_id, audio.file_unique_id, audio.duration) - b = Audio("", audio.file_unique_id, audio.duration) -@@ -145,6 +151,7 @@ class TestAudioWithoutRequest(TestAudioBase): - assert a != e - assert hash(a) != hash(e) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_audio(self, monkeypatch, bot, chat_id, audio): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["audio"] == audio.file_id -@@ -183,6 +190,7 @@ class TestAudioWithoutRequest(TestAudioBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, audio): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == audio.file_id -diff --git a/tests/_files/test_chatphoto.py b/tests/_files/test_chatphoto.py -index d09876e2..f115ea9c 100644 ---- a/tests/_files/test_chatphoto.py -+++ b/tests/_files/test_chatphoto.py -@@ -61,11 +61,13 @@ class TestChatPhotoBase: - - - class TestChatPhotoWithoutRequest(TestChatPhotoBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, chat_photo): - for attr in chat_photo.__slots__: - assert getattr(chat_photo, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(chat_photo)) == len(set(mro_slots(chat_photo))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, chat_photo): - json_dict = { - "small_file_id": self.chatphoto_small_file_id, -@@ -80,6 +82,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - assert chat_photo.small_file_unique_id == self.chatphoto_small_file_unique_id - assert chat_photo.big_file_unique_id == self.chatphoto_big_file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_to_dict(self, chat_photo): - chat_photo_dict = chat_photo.to_dict() - -@@ -121,6 +124,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - assert a != e - assert hash(a) != hash(e) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_chat_photo(self, monkeypatch, bot, super_group_id, chat_photo): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.parameters["photo"] == chat_photo.to_dict() -@@ -129,6 +133,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - message = await bot.set_chat_photo(photo=chat_photo, chat_id=super_group_id) - assert message - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_small_file_instance_method(self, monkeypatch, chat_photo): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == chat_photo.small_file_id -@@ -142,6 +147,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase): - monkeypatch.setattr(chat_photo.get_bot(), "get_file", make_assertion) - assert await chat_photo.get_small_file() - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_big_file_instance_method(self, monkeypatch, chat_photo): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == chat_photo.big_file_id -diff --git a/tests/_files/test_document.py b/tests/_files/test_document.py -index f5ccdbeb..11d5825e 100644 ---- a/tests/_files/test_document.py -+++ b/tests/_files/test_document.py -@@ -61,11 +61,13 @@ class TestDocumentBase: - - - class TestDocumentWithoutRequest(TestDocumentBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, document): - for attr in document.__slots__: - assert getattr(document, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(document)) == len(set(mro_slots(document))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, document): - assert isinstance(document, Document) - assert isinstance(document.file_id, str) -@@ -73,6 +75,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert document.file_id - assert document.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, document): - assert document.file_size == self.file_size - assert document.mime_type == self.mime_type -@@ -81,6 +84,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert document.thumbnail.width == self.thumb_width - assert document.thumbnail.height == self.thumb_height - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, document): - json_dict = { - "file_id": self.document_file_id, -@@ -100,6 +104,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert test_document.mime_type == self.mime_type - assert test_document.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, document): - document_dict = document.to_dict() - -@@ -110,6 +115,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - assert document_dict["mime_type"] == document.mime_type - assert document_dict["file_size"] == document.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, document): - a = Document(document.file_id, document.file_unique_id) - b = Document("", document.file_unique_id) -@@ -131,6 +137,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - await bot.send_document(chat_id=chat_id) - - @pytest.mark.parametrize("disable_content_type_detection", [True, False, None]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_document( - self, monkeypatch, bot, chat_id, document, disable_content_type_detection - ): -@@ -177,6 +184,7 @@ class TestDocumentWithoutRequest(TestDocumentBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, document): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == document.file_id -diff --git a/tests/_files/test_inputmedia.py b/tests/_files/test_inputmedia.py -index f00dd165..1f99d302 100644 ---- a/tests/_files/test_inputmedia.py -+++ b/tests/_files/test_inputmedia.py -@@ -179,6 +179,7 @@ class TestInputMediaVideoWithoutRequest(TestInputMediaVideoBase): - assert input_media_video_dict["supports_streaming"] == input_media_video.supports_streaming - assert input_media_video_dict["has_spoiler"] == input_media_video.has_spoiler - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_video(self, video): # noqa: F811 - # fixture found in test_video - input_media_video = InputMediaVideo(video, caption="test 3") -@@ -243,6 +244,7 @@ class TestInputMediaPhotoWithoutRequest(TestInputMediaPhotoBase): - ] - assert input_media_photo_dict["has_spoiler"] == input_media_photo.has_spoiler - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_photo(self, photo): # noqa: F811 - # fixture found in test_photo - input_media_photo = InputMediaPhoto(photo, caption="test 2") -@@ -308,6 +310,7 @@ class TestInputMediaAnimationWithoutRequest(TestInputMediaAnimationBase): - assert input_media_animation_dict["duration"] == input_media_animation.duration - assert input_media_animation_dict["has_spoiler"] == input_media_animation.has_spoiler - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_animation(self, animation): # noqa: F811 - # fixture found in test_animation - input_media_animation = InputMediaAnimation(animation, caption="test 2") -@@ -376,6 +379,7 @@ class TestInputMediaAudioWithoutRequest(TestInputMediaAudioBase): - ce.to_dict() for ce in input_media_audio.caption_entities - ] - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_audio(self, audio): # noqa: F811 - # fixture found in test_audio - input_media_audio = InputMediaAudio(audio, caption="test 3") -@@ -447,6 +451,7 @@ class TestInputMediaDocumentWithoutRequest(TestInputMediaDocumentBase): - == input_media_document.disable_content_type_detection - ) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_with_document(self, document): # noqa: F811 - # fixture found in test_document - input_media_document = InputMediaDocument(document, caption="test 3") -@@ -502,6 +507,7 @@ def media_group_no_caption_only_parse_mode(photo, thumb): # noqa: F811 - - - class TestSendMediaGroupWithoutRequest: -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_media_group_throws_error_with_group_caption_and_individual_captions( - self, - bot, -diff --git a/tests/_files/test_photo.py b/tests/_files/test_photo.py -index 9f85bec5..cd47e48f 100644 ---- a/tests/_files/test_photo.py -+++ b/tests/_files/test_photo.py -@@ -74,11 +74,13 @@ class TestPhotoBase: - - - class TestPhotoWithoutRequest(TestPhotoBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, photo): - for attr in photo.__slots__: - assert getattr(photo, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(photo)) == len(set(mro_slots(photo))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, thumb, photo): - # Make sure file has been uploaded. - assert isinstance(photo, PhotoSize) -@@ -93,6 +95,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - assert thumb.file_id - assert thumb.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, photo, thumb): - assert photo.width == self.width - assert photo.height == self.height -@@ -103,6 +106,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - # so far - assert thumb.file_size in [1475, 1477] - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, photo): - json_dict = { - "file_id": photo.file_id, -@@ -120,6 +124,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - assert json_photo.height == self.height - assert json_photo.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, photo): - photo_dict = photo.to_dict() - -@@ -130,6 +135,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - assert photo_dict["height"] == photo.height - assert photo_dict["file_size"] == photo.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, photo): - a = PhotoSize(photo.file_id, photo.file_unique_id, self.width, self.height) - b = PhotoSize("", photo.file_unique_id, self.width, self.height) -@@ -191,6 +197,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_photosize(self, monkeypatch, bot, chat_id, photo): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["photo"] == photo.file_id -@@ -198,6 +205,7 @@ class TestPhotoWithoutRequest(TestPhotoBase): - monkeypatch.setattr(bot.request, "post", make_assertion) - assert await bot.send_photo(photo=photo, chat_id=chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, photo): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == photo.file_id -diff --git a/tests/_files/test_sticker.py b/tests/_files/test_sticker.py -index c8b9b02a..8d5ff664 100644 ---- a/tests/_files/test_sticker.py -+++ b/tests/_files/test_sticker.py -@@ -115,11 +115,13 @@ class TestStickerBase: - - - class TestStickerWithoutRequest(TestStickerBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, sticker): - for attr in sticker.__slots__: - assert getattr(sticker, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(sticker)) == len(set(mro_slots(sticker))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, sticker): - # Make sure file has been uploaded. - assert isinstance(sticker, Sticker) -@@ -134,6 +136,7 @@ class TestStickerWithoutRequest(TestStickerBase): - assert sticker.thumbnail.file_unique_id - assert isinstance(sticker.needs_repainting, bool) - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, sticker): - assert sticker.width == self.width - assert sticker.height == self.height -@@ -148,6 +151,7 @@ class TestStickerWithoutRequest(TestStickerBase): - # we need to be a premium TG user to send a premium sticker, so the below is not tested - # assert sticker.premium_animation == self.premium_animation - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, sticker): - sticker_dict = sticker.to_dict() - -@@ -163,6 +167,7 @@ class TestStickerWithoutRequest(TestStickerBase): - assert sticker_dict["type"] == sticker.type - assert sticker_dict["needs_repainting"] == sticker.needs_repainting - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, sticker): - json_dict = { - "file_id": self.sticker_file_id, -@@ -196,6 +201,7 @@ class TestStickerWithoutRequest(TestStickerBase): - assert json_sticker.custom_emoji_id == self.custom_emoji_id - assert json_sticker.needs_repainting == self.needs_repainting - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, sticker): - a = Sticker( - sticker.file_id, -@@ -258,6 +264,7 @@ class TestStickerWithoutRequest(TestStickerBase): - with pytest.raises(TypeError): - await bot.send_sticker(chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_sticker(self, monkeypatch, bot, chat_id, sticker): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["sticker"] == sticker.file_id -@@ -532,6 +539,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase): - assert getattr(inst, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(inst)) == len(set(mro_slots(inst))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, sticker): - name = f"test_by_{bot.username}" - json_dict = { -@@ -555,6 +563,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase): - assert sticker_set.sticker_type == self.sticker_type - assert sticker_set.api_kwargs == {"contains_masks": self.contains_masks} - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_sticker_set_to_dict(self, sticker_set): - sticker_set_dict = sticker_set.to_dict() - -@@ -726,6 +735,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, sticker): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == sticker.file_id -diff --git a/tests/_files/test_video.py b/tests/_files/test_video.py -index b2ec1098..f6d4280f 100644 ---- a/tests/_files/test_video.py -+++ b/tests/_files/test_video.py -@@ -65,11 +65,13 @@ class TestVideoBase: - - - class TestVideoWithoutRequest(TestVideoBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, video): - for attr in video.__slots__: - assert getattr(video, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(video)) == len(set(mro_slots(video))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, video): - # Make sure file has been uploaded. - assert isinstance(video, Video) -@@ -84,6 +86,7 @@ class TestVideoWithoutRequest(TestVideoBase): - assert video.thumbnail.file_id - assert video.thumbnail.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, video): - assert video.width == self.width - assert video.height == self.height -@@ -114,6 +117,7 @@ class TestVideoWithoutRequest(TestVideoBase): - assert json_video.file_size == self.file_size - assert json_video.file_name == self.file_name - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, video): - video_dict = video.to_dict() - -@@ -127,6 +131,7 @@ class TestVideoWithoutRequest(TestVideoBase): - assert video_dict["file_size"] == video.file_size - assert video_dict["file_name"] == video.file_name - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, video): - a = Video(video.file_id, video.file_unique_id, self.width, self.height, self.duration) - b = Video("", video.file_unique_id, self.width, self.height, self.duration) -@@ -151,6 +156,7 @@ class TestVideoWithoutRequest(TestVideoBase): - with pytest.raises(TypeError): - await bot.send_video(chat_id=chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_video(self, monkeypatch, bot, chat_id, video): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["video"] == video.file_id -@@ -190,6 +196,7 @@ class TestVideoWithoutRequest(TestVideoBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, video): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == video.file_id -diff --git a/tests/_files/test_videonote.py b/tests/_files/test_videonote.py -index b931678d..717d86fb 100644 ---- a/tests/_files/test_videonote.py -+++ b/tests/_files/test_videonote.py -@@ -59,11 +59,13 @@ class TestVideoNoteBase: - - - class TestVideoNoteWithoutRequest(TestVideoNoteBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, video_note): - for attr in video_note.__slots__: - assert getattr(video_note, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(video_note)) == len(set(mro_slots(video_note))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_creation(self, video_note): - # Make sure file has been uploaded. - assert isinstance(video_note, VideoNote) -@@ -78,6 +80,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - assert video_note.thumbnail.file_id - assert video_note.thumbnail.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, video_note): - assert video_note.length == self.length - assert video_note.duration == self.duration -@@ -100,6 +103,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - assert json_video_note.duration == self.duration - assert json_video_note.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, video_note): - video_note_dict = video_note.to_dict() - -@@ -110,6 +114,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - assert video_note_dict["duration"] == video_note.duration - assert video_note_dict["file_size"] == video_note.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, video_note): - a = VideoNote(video_note.file_id, video_note.file_unique_id, self.length, self.duration) - b = VideoNote("", video_note.file_unique_id, self.length, self.duration) -@@ -134,6 +139,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - with pytest.raises(TypeError): - await bot.send_video_note(chat_id=chat_id) - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_video_note(self, monkeypatch, bot, chat_id, video_note): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["video_note"] == video_note.file_id -@@ -177,6 +183,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, video_note): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == video_note.file_id -diff --git a/tests/_files/test_voice.py b/tests/_files/test_voice.py -index b29260d5..77d9f719 100644 ---- a/tests/_files/test_voice.py -+++ b/tests/_files/test_voice.py -@@ -58,11 +58,13 @@ class TestVoiceBase: - - - class TestVoiceWithoutRequest(TestVoiceBase): -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, voice): - for attr in voice.__slots__: - assert getattr(voice, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(voice)) == len(set(mro_slots(voice))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_creation(self, voice): - # Make sure file has been uploaded. - assert isinstance(voice, Voice) -@@ -71,6 +73,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - assert voice.file_id - assert voice.file_unique_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_expected_values(self, voice): - assert voice.duration == self.duration - assert voice.mime_type == self.mime_type -@@ -93,6 +96,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - assert json_voice.mime_type == self.mime_type - assert json_voice.file_size == self.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, voice): - voice_dict = voice.to_dict() - -@@ -103,6 +107,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - assert voice_dict["mime_type"] == voice.mime_type - assert voice_dict["file_size"] == voice.file_size - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, voice): - a = Voice(voice.file_id, voice.file_unique_id, self.duration) - b = Voice("", voice.file_unique_id, self.duration) -@@ -135,6 +140,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - - assert await bot.send_voice(chat_id, voice_file, filename="custom_filename") - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_send_with_voice(self, monkeypatch, bot, chat_id, voice): - async def make_assertion(url, request_data: RequestData, *args, **kwargs): - return request_data.json_parameters["voice"] == voice.file_id -@@ -164,6 +170,7 @@ class TestVoiceWithoutRequest(TestVoiceBase): - finally: - bot._local_mode = False - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_file_instance_method(self, monkeypatch, voice): - async def make_assertion(*_, **kwargs): - return kwargs["file_id"] == voice.file_id -diff --git a/tests/request/test_request.py b/tests/request/test_request.py -index 9334f7b7..80aef409 100644 ---- a/tests/request/test_request.py -+++ b/tests/request/test_request.py -@@ -422,6 +422,7 @@ class TestHTTPXRequestWithoutRequest: - assert self.test_flag["init"] == 1 - assert self.test_flag["shutdown"] == 1 - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_multiple_init_cycles(self): - # nothing really to assert - this should just not fail - httpx_request = HTTPXRequest() -@@ -434,6 +435,7 @@ class TestHTTPXRequestWithoutRequest: - with pytest.raises(ValueError, match="`http_version` must be either"): - HTTPXRequest(http_version="1.0") - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_http_1_response(self): - httpx_request = HTTPXRequest(http_version="1.1") - async with httpx_request: -diff --git a/tests/test_bot.py b/tests/test_bot.py -index ba3c82af..86970d73 100644 ---- a/tests/test_bot.py -+++ b/tests/test_bot.py -@@ -311,6 +311,7 @@ class TestBotWithoutRequest: - - assert self.test_flag == "stop" - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_equality(self): - async with make_bot(token=FALLBACKS[0]["token"]) as a, make_bot( - token=FALLBACKS[0]["token"] -@@ -352,6 +353,7 @@ class TestBotWithoutRequest: - finally: - await bot.shutdown() - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_get_me_and_properties(self, bot): - get_me_bot = await ExtBot(bot.token).get_me() - -@@ -389,6 +391,7 @@ class TestBotWithoutRequest: - @pytest.mark.parametrize( - ("cls", "logger_name"), [(Bot, "telegram.Bot"), (ExtBot, "telegram.ext.ExtBot")] - ) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_log_decorator(self, bot: PytestExtBot, cls, logger_name, caplog): - # Second argument makes sure that we ignore logs from e.g. httpx - with caplog.at_level(logging.DEBUG, logger="telegram"): -@@ -1395,6 +1398,7 @@ class TestBotWithoutRequest: - - @pytest.mark.parametrize("json_keyboard", [True, False]) - @pytest.mark.parametrize("caption", ["<b>Test</b>", "", None]) -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_copy_message( - self, monkeypatch, bot, chat_id, media_message, json_keyboard, caption - ): -diff --git a/tests/test_forum.py b/tests/test_forum.py -index d367fc9c..a130a5cc 100644 ---- a/tests/test_forum.py -+++ b/tests/test_forum.py -@@ -74,18 +74,21 @@ async def real_topic(bot, emoji_id, forum_group_id): - - - class TestForumTopicWithoutRequest: -+ @pytest.mark.skip(reason="Requires internet connection") - def test_slot_behaviour(self, forum_topic_object): - inst = forum_topic_object - for attr in inst.__slots__: - assert getattr(inst, attr, "err") != "err", f"got extra slot '{attr}'" - assert len(mro_slots(inst)) == len(set(mro_slots(inst))), "duplicate slot" - -+ @pytest.mark.skip(reason="Requires internet connection") - async def test_expected_values(self, emoji_id, forum_group_id, forum_topic_object): - assert forum_topic_object.message_thread_id == forum_group_id - assert forum_topic_object.icon_color == TEST_TOPIC_ICON_COLOR - assert forum_topic_object.name == TEST_TOPIC_NAME - assert forum_topic_object.icon_custom_emoji_id == emoji_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_de_json(self, bot, emoji_id, forum_group_id): - assert ForumTopic.de_json(None, bot=bot) is None - -@@ -103,6 +106,7 @@ class TestForumTopicWithoutRequest: - assert topic.name == TEST_TOPIC_NAME - assert topic.icon_custom_emoji_id == emoji_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_to_dict(self, emoji_id, forum_group_id, forum_topic_object): - topic_dict = forum_topic_object.to_dict() - -@@ -112,6 +116,7 @@ class TestForumTopicWithoutRequest: - assert topic_dict["icon_color"] == TEST_TOPIC_ICON_COLOR - assert topic_dict["icon_custom_emoji_id"] == emoji_id - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, emoji_id, forum_group_id): - a = ForumTopic( - message_thread_id=forum_group_id, -@@ -350,6 +355,7 @@ class TestForumTopicCreatedWithoutRequest: - assert action_dict["name"] == TEST_TOPIC_NAME - assert action_dict["icon_color"] == TEST_TOPIC_ICON_COLOR - -+ @pytest.mark.skip(reason="Requires internet connection") - def test_equality(self, emoji_id): - a = ForumTopicCreated(name=TEST_TOPIC_NAME, icon_color=TEST_TOPIC_ICON_COLOR) - b = ForumTopicCreated( diff --git a/dev-python/python-telegram-bot/python-telegram-bot-20.3-r1.ebuild b/dev-python/python-telegram-bot/python-telegram-bot-20.3-r1.ebuild new file mode 100644 index 000000000000..ad86317b08e6 --- /dev/null +++ b/dev-python/python-telegram-bot/python-telegram-bot-20.3-r1.ebuild @@ -0,0 +1,155 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) +inherit distutils-r1 optfeature + +DESCRIPTION="Python wrapper of telegram bots API" +HOMEPAGE="https://docs.python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot" +SRC_URI="https://github.com/python-telegram-bot/python-telegram-bot/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + >=dev-python/cachetools-5.3.0[${PYTHON_USEDEP}] + >=dev-python/cryptography-39.0.1[${PYTHON_USEDEP}] + >=dev-python/httpx-0.24.0[${PYTHON_USEDEP}] + >=dev-python/tornado-6.2[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + >=dev-python/tornado-6.2[${PYTHON_USEDEP}] + ) +" + +# These tests require an internet connection +EPYTEST_DESELECT=( + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_creation + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_de_json + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_expected_values + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_get_file_instance_method + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_send_animation_thumb_deprecation_warning + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_send_with_animation + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_slot_behaviour + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_to_dict + tests/_files/test_audio.py::TestAudioWithoutRequest::test_creation + tests/_files/test_audio.py::TestAudioWithoutRequest::test_de_json + tests/_files/test_audio.py::TestAudioWithoutRequest::test_equality + tests/_files/test_audio.py::TestAudioWithoutRequest::test_expected_values + tests/_files/test_audio.py::TestAudioWithoutRequest::test_get_file_instance_method + tests/_files/test_audio.py::TestAudioWithoutRequest::test_send_audio_thumb_deprecation_warning + tests/_files/test_audio.py::TestAudioWithoutRequest::test_send_with_audio + tests/_files/test_audio.py::TestAudioWithoutRequest::test_slot_behaviour + tests/_files/test_audio.py::TestAudioWithoutRequest::test_to_dict + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_de_json + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_get_big_file_instance_method + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_get_small_file_instance_method + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_send_with_chat_photo + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_slot_behaviour + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_to_dict + tests/_files/test_document.py::TestDocumentWithoutRequest::test_creation + tests/_files/test_document.py::TestDocumentWithoutRequest::test_de_json + tests/_files/test_document.py::TestDocumentWithoutRequest::test_equality + tests/_files/test_document.py::TestDocumentWithoutRequest::test_expected_values + tests/_files/test_document.py::TestDocumentWithoutRequest::test_get_file_instance_method + tests/_files/test_document.py::TestDocumentWithoutRequest::test_send_document_thumb_deprecation_warning + tests/_files/test_document.py::TestDocumentWithoutRequest::test_send_with_document + tests/_files/test_document.py::TestDocumentWithoutRequest::test_slot_behaviour + tests/_files/test_document.py::TestDocumentWithoutRequest::test_to_dict + tests/_files/test_inputmedia.py::TestInputMediaAnimationWithoutRequest::test_with_animation + tests/_files/test_inputmedia.py::TestInputMediaAudioWithoutRequest::test_with_audio + tests/_files/test_inputmedia.py::TestInputMediaDocumentWithoutRequest::test_with_document + tests/_files/test_inputmedia.py::TestInputMediaPhotoWithoutRequest::test_with_photo + tests/_files/test_inputmedia.py::TestInputMediaVideoWithoutRequest::test_with_video + tests/_files/test_inputmedia.py::TestSendMediaGroupWithoutRequest::test_send_media_group_throws_error_with_group_caption_and_individual_captions + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_creation + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_de_json + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_equality + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_expected_values + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_get_file_instance_method + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_send_with_photosize + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_slot_behaviour + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_to_dict + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_de_json + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_get_file_instance_method + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_sticker_set_to_dict + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_creation + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_de_json + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_equality + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_expected_values + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_send_with_sticker + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_slot_behaviour + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_to_dict + tests/_files/test_video.py::TestVideoWithoutRequest::test_creation + tests/_files/test_video.py::TestVideoWithoutRequest::test_equality + tests/_files/test_video.py::TestVideoWithoutRequest::test_expected_values + tests/_files/test_video.py::TestVideoWithoutRequest::test_get_file_instance_method + tests/_files/test_video.py::TestVideoWithoutRequest::test_send_video_thumb_deprecation_warning + tests/_files/test_video.py::TestVideoWithoutRequest::test_send_with_video + tests/_files/test_video.py::TestVideoWithoutRequest::test_slot_behaviour + tests/_files/test_video.py::TestVideoWithoutRequest::test_to_dict + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_creation + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_equality + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_expected_values + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_get_file_instance_method + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_send_video_note_thumb_deprecation_warning + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_send_with_video_note + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_slot_behaviour + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_to_dict + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_creation + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_equality + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_expected_values + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_get_file_instance_method + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_send_with_voice + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_slot_behaviour + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_to_dict + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_after_shutdown + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_exceptions + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_manual_timeouts + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_params_no_data + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_params_with_data + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_return_value + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_http_1_response + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_multiple_init_cycles + tests/request/test_request.py::TestRequestWithoutRequest::test_chat_migrated + tests/request/test_request.py::TestRequestWithoutRequest::test_error_description + tests/request/test_request.py::TestRequestWithoutRequest::test_exceptions_in_do_request + tests/request/test_request.py::TestRequestWithoutRequest::test_illegal_json_response + tests/request/test_request.py::TestRequestWithoutRequest::test_replaced_unprintable_char + tests/request/test_request.py::TestRequestWithoutRequest::test_retrieve + tests/request/test_request.py::TestRequestWithoutRequest::test_retry_after + tests/request/test_request.py::TestRequestWithoutRequest::test_special_errors + tests/request/test_request.py::TestRequestWithoutRequest::test_timeout_propagation + tests/request/test_request.py::TestRequestWithoutRequest::test_unknown_request_params + tests/test_bot.py::TestBotWithoutRequest::test_copy_message + tests/test_bot.py::TestBotWithoutRequest::test_equality + tests/test_bot.py::TestBotWithoutRequest::test_get_me_and_properties + tests/test_bot.py::TestBotWithoutRequest::test_log_decorator + tests/test_forum.py::TestForumTopicCreatedWithoutRequest::test_equality + tests/test_forum.py::TestForumTopicWithoutRequest::test_de_json + tests/test_forum.py::TestForumTopicWithoutRequest::test_equality + tests/test_forum.py::TestForumTopicWithoutRequest::test_expected_values + tests/test_forum.py::TestForumTopicWithoutRequest::test_slot_behaviour + tests/test_forum.py::TestForumTopicWithoutRequest::test_to_dict +) + +distutils_enable_tests pytest + +# Run only the tests that don't require a connection +python_test() { + epytest -m no_req +} + +pkg_postinst() { + optfeature "using telegram.ext.JobQueue" dev-python/APScheduler +} diff --git a/dev-python/python-telegram-bot/python-telegram-bot-20.3.ebuild b/dev-python/python-telegram-bot/python-telegram-bot-20.3.ebuild deleted file mode 100644 index 5b2a23ecbc50..000000000000 --- a/dev-python/python-telegram-bot/python-telegram-bot-20.3.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8,9,10,11,12} ) -inherit distutils-r1 optfeature - -DESCRIPTION="Python wrapper of telegram bots API" -HOMEPAGE="https://docs.python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot" -SRC_URI="https://github.com/python-telegram-bot/python-telegram-bot/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - >=dev-python/cachetools-5.3.0[${PYTHON_USEDEP}] - >=dev-python/cryptography-39.0.1[${PYTHON_USEDEP}] - >=dev-python/httpx-0.24.0[${PYTHON_USEDEP}] - >=dev-python/tornado-6.2[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - dev-python/flaky[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/pytest-asyncio[${PYTHON_USEDEP}] - dev-python/pytz[${PYTHON_USEDEP}] - >=dev-python/tornado-6.2[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${P}-no-internet-tests.patch" -) - -S="${WORKDIR}/${PN}-${PV}" - -distutils_enable_tests pytest - -# Run only the tests that don't require a connection -python_test() { - epytest -m no_req -} - -python_prepare_all() { - distutils-r1_python_prepare_all -} - -pkg_postinst() { - optfeature_header "Optional package dependencies:" - optfeature "using telegram.ext.JobQueue" dev-python/APScheduler -} diff --git a/dev-python/python-telegram-bot/python-telegram-bot-20.5-r1.ebuild b/dev-python/python-telegram-bot/python-telegram-bot-20.5-r1.ebuild new file mode 100644 index 000000000000..a90e597a2ad5 --- /dev/null +++ b/dev-python/python-telegram-bot/python-telegram-bot-20.5-r1.ebuild @@ -0,0 +1,150 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) +inherit distutils-r1 optfeature + +DESCRIPTION="Python wrapper of telegram bots API" +HOMEPAGE="https://docs.python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot" +SRC_URI="https://github.com/python-telegram-bot/python-telegram-bot/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + >=dev-python/cachetools-5.3.0[${PYTHON_USEDEP}] + >=dev-python/cryptography-39.0.1[${PYTHON_USEDEP}] + >=dev-python/httpx-0.24.0[${PYTHON_USEDEP}] + >=dev-python/tornado-6.2[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + >=dev-python/tornado-6.2[${PYTHON_USEDEP}] + ) +" + +# These tests require an internet connection +EPYTEST_DESELECT=( + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_creation + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_de_json + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_expected_values + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_get_file_instance_method + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_send_with_animation + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_slot_behaviour + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_to_dict + tests/_files/test_audio.py::TestAudioWithoutRequest::test_creation + tests/_files/test_audio.py::TestAudioWithoutRequest::test_de_json + tests/_files/test_audio.py::TestAudioWithoutRequest::test_equality + tests/_files/test_audio.py::TestAudioWithoutRequest::test_expected_values + tests/_files/test_audio.py::TestAudioWithoutRequest::test_get_file_instance_method + tests/_files/test_audio.py::TestAudioWithoutRequest::test_send_with_audio + tests/_files/test_audio.py::TestAudioWithoutRequest::test_slot_behaviour + tests/_files/test_audio.py::TestAudioWithoutRequest::test_to_dict + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_de_json + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_get_big_file_instance_method + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_get_small_file_instance_method + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_send_with_chat_photo + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_slot_behaviour + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_to_dict + tests/_files/test_document.py::TestDocumentWithoutRequest::test_creation + tests/_files/test_document.py::TestDocumentWithoutRequest::test_de_json + tests/_files/test_document.py::TestDocumentWithoutRequest::test_equality + tests/_files/test_document.py::TestDocumentWithoutRequest::test_expected_values + tests/_files/test_document.py::TestDocumentWithoutRequest::test_get_file_instance_method + tests/_files/test_document.py::TestDocumentWithoutRequest::test_send_with_document + tests/_files/test_document.py::TestDocumentWithoutRequest::test_slot_behaviour + tests/_files/test_document.py::TestDocumentWithoutRequest::test_to_dict + tests/_files/test_inputmedia.py::TestInputMediaAnimationWithoutRequest::test_with_animation + tests/_files/test_inputmedia.py::TestInputMediaAudioWithoutRequest::test_with_audio + tests/_files/test_inputmedia.py::TestInputMediaDocumentWithoutRequest::test_with_document + tests/_files/test_inputmedia.py::TestInputMediaPhotoWithoutRequest::test_with_photo + tests/_files/test_inputmedia.py::TestInputMediaVideoWithoutRequest::test_with_video + tests/_files/test_inputmedia.py::TestSendMediaGroupWithoutRequest::test_send_media_group_throws_error_with_group_caption_and_individual_captions + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_creation + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_de_json + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_equality + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_expected_values + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_get_file_instance_method + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_send_with_photosize + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_slot_behaviour + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_to_dict + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_de_json + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_get_file_instance_method + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_sticker_set_to_dict + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_creation + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_de_json + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_equality + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_expected_values + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_send_with_sticker + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_slot_behaviour + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_to_dict + tests/_files/test_video.py::TestVideoWithoutRequest::test_creation + tests/_files/test_video.py::TestVideoWithoutRequest::test_equality + tests/_files/test_video.py::TestVideoWithoutRequest::test_expected_values + tests/_files/test_video.py::TestVideoWithoutRequest::test_get_file_instance_method + tests/_files/test_video.py::TestVideoWithoutRequest::test_send_with_video + tests/_files/test_video.py::TestVideoWithoutRequest::test_slot_behaviour + tests/_files/test_video.py::TestVideoWithoutRequest::test_to_dict + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_creation + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_equality + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_expected_values + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_get_file_instance_method + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_send_with_video_note + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_slot_behaviour + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_to_dict + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_creation + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_equality + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_expected_values + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_get_file_instance_method + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_send_with_voice + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_slot_behaviour + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_to_dict + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_after_shutdown + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_exceptions + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_manual_timeouts + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_params_no_data + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_params_with_data + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_return_value + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_http_1_response + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_multiple_init_cycles + tests/request/test_request.py::TestRequestWithoutRequest::test_chat_migrated + tests/request/test_request.py::TestRequestWithoutRequest::test_error_description + tests/request/test_request.py::TestRequestWithoutRequest::test_exceptions_in_do_request + tests/request/test_request.py::TestRequestWithoutRequest::test_illegal_json_response + tests/request/test_request.py::TestRequestWithoutRequest::test_replaced_unprintable_char + tests/request/test_request.py::TestRequestWithoutRequest::test_retrieve + tests/request/test_request.py::TestRequestWithoutRequest::test_retry_after + tests/request/test_request.py::TestRequestWithoutRequest::test_special_errors + tests/request/test_request.py::TestRequestWithoutRequest::test_timeout_propagation + tests/request/test_request.py::TestRequestWithoutRequest::test_unknown_request_params + tests/test_bot.py::TestBotWithoutRequest::test_copy_message + tests/test_bot.py::TestBotWithoutRequest::test_equality + tests/test_bot.py::TestBotWithoutRequest::test_get_me_and_properties + tests/test_bot.py::TestBotWithoutRequest::test_log_decorator + tests/test_forum.py::TestForumTopicCreatedWithoutRequest::test_equality + tests/test_forum.py::TestForumTopicWithoutRequest::test_de_json + tests/test_forum.py::TestForumTopicWithoutRequest::test_equality + tests/test_forum.py::TestForumTopicWithoutRequest::test_expected_values + tests/test_forum.py::TestForumTopicWithoutRequest::test_slot_behaviour + tests/test_forum.py::TestForumTopicWithoutRequest::test_to_dict +) + +distutils_enable_tests pytest + +# Run only the tests that don't require a connection +python_test() { + epytest -m no_req +} + +pkg_postinst() { + optfeature "using telegram.ext.JobQueue" dev-python/APScheduler +} diff --git a/dev-python/python-telegram-bot/python-telegram-bot-20.5.ebuild b/dev-python/python-telegram-bot/python-telegram-bot-20.5.ebuild deleted file mode 100644 index 7a4637f122b6..000000000000 --- a/dev-python/python-telegram-bot/python-telegram-bot-20.5.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8,9,10,11,12} ) -inherit distutils-r1 optfeature - -DESCRIPTION="Python wrapper of telegram bots API" -HOMEPAGE="https://docs.python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot" -SRC_URI="https://github.com/python-telegram-bot/python-telegram-bot/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - >=dev-python/cachetools-5.3.0[${PYTHON_USEDEP}] - >=dev-python/cryptography-39.0.1[${PYTHON_USEDEP}] - >=dev-python/httpx-0.24.0[${PYTHON_USEDEP}] - >=dev-python/tornado-6.2[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - dev-python/flaky[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/pytest-asyncio[${PYTHON_USEDEP}] - dev-python/pytz[${PYTHON_USEDEP}] - >=dev-python/tornado-6.2[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${P}-no-internet-tests.patch" -) - -distutils_enable_tests pytest - -# Run only the tests that don't require a connection -python_test() { - epytest -m no_req -} - -python_prepare_all() { - distutils-r1_python_prepare_all -} - -pkg_postinst() { - optfeature_header "Optional package dependencies:" - optfeature "using telegram.ext.JobQueue" dev-python/APScheduler -} diff --git a/dev-python/python-telegram-bot/python-telegram-bot-20.6-r1.ebuild b/dev-python/python-telegram-bot/python-telegram-bot-20.6-r1.ebuild new file mode 100644 index 000000000000..2d41c89cf44a --- /dev/null +++ b/dev-python/python-telegram-bot/python-telegram-bot-20.6-r1.ebuild @@ -0,0 +1,150 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) +inherit distutils-r1 optfeature + +DESCRIPTION="Python wrapper of telegram bots API" +HOMEPAGE="https://docs.python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot" +SRC_URI="https://github.com/python-telegram-bot/python-telegram-bot/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + >=dev-python/cachetools-5.3.1[${PYTHON_USEDEP}] + >=dev-python/cryptography-39.0.1[${PYTHON_USEDEP}] + >=dev-python/httpx-0.25.0[${PYTHON_USEDEP}] + >=dev-python/tornado-6.3.3[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + >=dev-python/tornado-6.3.3[${PYTHON_USEDEP}] + ) +" + +# These tests require an internet connection +EPYTEST_DESELECT=( + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_creation + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_de_json + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_expected_values + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_get_file_instance_method + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_send_with_animation + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_slot_behaviour + tests/_files/test_animation.py::TestAnimationWithoutRequest::test_to_dict + tests/_files/test_audio.py::TestAudioWithoutRequest::test_creation + tests/_files/test_audio.py::TestAudioWithoutRequest::test_de_json + tests/_files/test_audio.py::TestAudioWithoutRequest::test_equality + tests/_files/test_audio.py::TestAudioWithoutRequest::test_expected_values + tests/_files/test_audio.py::TestAudioWithoutRequest::test_get_file_instance_method + tests/_files/test_audio.py::TestAudioWithoutRequest::test_send_with_audio + tests/_files/test_audio.py::TestAudioWithoutRequest::test_slot_behaviour + tests/_files/test_audio.py::TestAudioWithoutRequest::test_to_dict + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_de_json + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_get_big_file_instance_method + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_get_small_file_instance_method + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_send_with_chat_photo + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_slot_behaviour + tests/_files/test_chatphoto.py::TestChatPhotoWithoutRequest::test_to_dict + tests/_files/test_document.py::TestDocumentWithoutRequest::test_creation + tests/_files/test_document.py::TestDocumentWithoutRequest::test_de_json + tests/_files/test_document.py::TestDocumentWithoutRequest::test_equality + tests/_files/test_document.py::TestDocumentWithoutRequest::test_expected_values + tests/_files/test_document.py::TestDocumentWithoutRequest::test_get_file_instance_method + tests/_files/test_document.py::TestDocumentWithoutRequest::test_send_with_document + tests/_files/test_document.py::TestDocumentWithoutRequest::test_slot_behaviour + tests/_files/test_document.py::TestDocumentWithoutRequest::test_to_dict + tests/_files/test_inputmedia.py::TestInputMediaAnimationWithoutRequest::test_with_animation + tests/_files/test_inputmedia.py::TestInputMediaAudioWithoutRequest::test_with_audio + tests/_files/test_inputmedia.py::TestInputMediaDocumentWithoutRequest::test_with_document + tests/_files/test_inputmedia.py::TestInputMediaPhotoWithoutRequest::test_with_photo + tests/_files/test_inputmedia.py::TestInputMediaVideoWithoutRequest::test_with_video + tests/_files/test_inputmedia.py::TestSendMediaGroupWithoutRequest::test_send_media_group_throws_error_with_group_caption_and_individual_captions + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_creation + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_de_json + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_equality + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_expected_values + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_get_file_instance_method + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_send_with_photosize + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_slot_behaviour + tests/_files/test_photo.py::TestPhotoWithoutRequest::test_to_dict + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_de_json + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_get_file_instance_method + tests/_files/test_sticker.py::TestStickerSetWithoutRequest::test_sticker_set_to_dict + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_creation + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_de_json + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_equality + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_expected_values + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_send_with_sticker + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_slot_behaviour + tests/_files/test_sticker.py::TestStickerWithoutRequest::test_to_dict + tests/_files/test_video.py::TestVideoWithoutRequest::test_creation + tests/_files/test_video.py::TestVideoWithoutRequest::test_equality + tests/_files/test_video.py::TestVideoWithoutRequest::test_expected_values + tests/_files/test_video.py::TestVideoWithoutRequest::test_get_file_instance_method + tests/_files/test_video.py::TestVideoWithoutRequest::test_send_with_video + tests/_files/test_video.py::TestVideoWithoutRequest::test_slot_behaviour + tests/_files/test_video.py::TestVideoWithoutRequest::test_to_dict + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_creation + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_equality + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_expected_values + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_get_file_instance_method + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_send_with_video_note + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_slot_behaviour + tests/_files/test_videonote.py::TestVideoNoteWithoutRequest::test_to_dict + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_creation + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_equality + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_expected_values + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_get_file_instance_method + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_send_with_voice + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_slot_behaviour + tests/_files/test_voice.py::TestVoiceWithoutRequest::test_to_dict + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_after_shutdown + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_exceptions + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_manual_timeouts + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_params_no_data + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_params_with_data + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_do_request_return_value + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_http_1_response + tests/request/test_request.py::TestHTTPXRequestWithoutRequest::test_multiple_init_cycles + tests/request/test_request.py::TestRequestWithoutRequest::test_chat_migrated + tests/request/test_request.py::TestRequestWithoutRequest::test_error_description + tests/request/test_request.py::TestRequestWithoutRequest::test_exceptions_in_do_request + tests/request/test_request.py::TestRequestWithoutRequest::test_illegal_json_response + tests/request/test_request.py::TestRequestWithoutRequest::test_replaced_unprintable_char + tests/request/test_request.py::TestRequestWithoutRequest::test_retrieve + tests/request/test_request.py::TestRequestWithoutRequest::test_retry_after + tests/request/test_request.py::TestRequestWithoutRequest::test_special_errors + tests/request/test_request.py::TestRequestWithoutRequest::test_timeout_propagation + tests/request/test_request.py::TestRequestWithoutRequest::test_unknown_request_params + tests/test_bot.py::TestBotWithoutRequest::test_copy_message + tests/test_bot.py::TestBotWithoutRequest::test_equality + tests/test_bot.py::TestBotWithoutRequest::test_get_me_and_properties + tests/test_bot.py::TestBotWithoutRequest::test_log_decorator + tests/test_forum.py::TestForumTopicCreatedWithoutRequest::test_equality + tests/test_forum.py::TestForumTopicWithoutRequest::test_de_json + tests/test_forum.py::TestForumTopicWithoutRequest::test_equality + tests/test_forum.py::TestForumTopicWithoutRequest::test_expected_values + tests/test_forum.py::TestForumTopicWithoutRequest::test_slot_behaviour + tests/test_forum.py::TestForumTopicWithoutRequest::test_to_dict +) + +distutils_enable_tests pytest + +# Run only the tests that don't require a connection +python_test() { + epytest -m no_req +} + +pkg_postinst() { + optfeature "using telegram.ext.JobQueue" dev-python/APScheduler +} diff --git a/dev-python/python-telegram-bot/python-telegram-bot-20.6.ebuild b/dev-python/python-telegram-bot/python-telegram-bot-20.6.ebuild deleted file mode 100644 index 13cf50165808..000000000000 --- a/dev-python/python-telegram-bot/python-telegram-bot-20.6.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8,9,10,11,12} ) -inherit distutils-r1 optfeature - -DESCRIPTION="Python wrapper of telegram bots API" -HOMEPAGE="https://docs.python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot" -SRC_URI="https://github.com/python-telegram-bot/python-telegram-bot/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - >=dev-python/cachetools-5.3.1[${PYTHON_USEDEP}] - >=dev-python/cryptography-39.0.1[${PYTHON_USEDEP}] - >=dev-python/httpx-0.25.0[${PYTHON_USEDEP}] - >=dev-python/tornado-6.3.3[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - dev-python/flaky[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/pytest-asyncio[${PYTHON_USEDEP}] - dev-python/pytz[${PYTHON_USEDEP}] - >=dev-python/tornado-6.3.3[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${P}-no-internet-tests.patch" -) - -S="${WORKDIR}/${PN}-${PV}" - -distutils_enable_tests pytest - -# Run only the tests that don't require a connection -python_test() { - epytest -m no_req -} - -python_prepare_all() { - distutils-r1_python_prepare_all -} - -pkg_postinst() { - optfeature_header "Optional package dependencies:" - optfeature "using telegram.ext.JobQueue" dev-python/APScheduler -} diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest index e9f2167eb3fd..8da55fb8fefa 100644 --- a/dev-python/regex/Manifest +++ b/dev-python/regex/Manifest @@ -1,2 +1,3 @@ DIST regex-2023.12.25.tar.gz 394706 BLAKE2B 742abe3a3515b527465d81df8fd9404aaa6aa1545e3e6a8c4a87d72d41138caf7f63bceae8bf06b3576656a6b5577bfec51629a60fe837ad2f3a4cd60a08ac06 SHA512 ecc5916633e2acb8d8a0c5ccfdc1c612f673546c42271d5627aa92a163fa6c8fd5a30ed734a02c23fa64807aaf2f883fa51175b7f482888631f699e77d1c0e15 DIST regex-2024.4.16.tar.gz 394724 BLAKE2B 75df2f861116ebf37845abdb0883774ac53d7d61e4cdf18128c74b4c1d5a55b86bfd447616cdb8fc14239c0a5aeaa2c7e59cb0b2b365b57185d785a3728e6dce SHA512 15da80751f1a4b000e4ea59887963aec939fc6431a672391a7f882e05ff15934b89e191d19fd388b9dd6032d2ea44f8511c0ce238e5f1d8db102a89d1866f456 +DIST regex-2024.4.28.tar.gz 394810 BLAKE2B 6fa882219feb783c7340015769655e05257ddd17a6e34f830a60f319afca5face64de72511b0bef0820ace4f379ff5ad557bbdfef414cc0371136a79949a7e13 SHA512 3a05ea8f197d6924f6fd3db2609c1ca13f452f1bc598f8d6ec2ee45a0e5966655e93f039cc76e1cdc714856fa5d21e64aae8d83063ebafdd85e44c82e65f8c50 diff --git a/dev-python/regex/regex-2024.4.28.ebuild b/dev-python/regex/regex-2024.4.28.ebuild new file mode 100644 index 000000000000..39e9de8e2592 --- /dev/null +++ b/dev-python/regex/regex-2024.4.28.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +# pypy isn't supported upstream because of its UTF8 representation for strings +# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187. +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Alternative regular expression module to replace re" +HOMEPAGE=" + https://github.com/mrabarnett/mrab-regex/ + https://pypi.org/project/regex/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="doc" + +PATCHES=( + "${FILESDIR}/${PN}-2021.4.4-pypy3-fix-test_empty_array.patch" + "${FILESDIR}/${PN}-2021.4.4-pypy3-fix-test_issue_18468.patch" +) + +distutils_enable_tests unittest + +python_install_all() { + use doc && local HTML_DOCS=( docs/Features.html ) + local DOCS=( README.rst docs/*.rst ) + + distutils-r1_python_install_all +} diff --git a/dev-python/time-machine/Manifest b/dev-python/time-machine/Manifest index c04e351318ca..8c94468934a9 100644 --- a/dev-python/time-machine/Manifest +++ b/dev-python/time-machine/Manifest @@ -1,3 +1 @@ -DIST time-machine-2.13.0.gh.tar.gz 28747 BLAKE2B 88836d2b9ad34c8d256b576ab6b2bfe263232fb50d2e95f13049f84dbc838283811ebc54c5bb68493ef966e64777983ab6bcb7fafccda6dc74e00d3bb6a2108f SHA512 26a852d93633e037585ec8fcd563c86af8d977a87633dbeb66cf23c9ca49ca0ae536bdcdcdf809ee2ab423c197610c630d506bc3bf4f13c373d806cee2d8c598 -DIST time-machine-2.14.0.gh.tar.gz 29270 BLAKE2B 55050879fe221204f14c77a90190c2ef5232e182d281885d60686230365b9249f8e90ec80e7a842d43a2c52b72bf463cd59b4a22fdc8b0cd25c5ad5b0306fc98 SHA512 7bc9d6d53da68c18ccdae1af6282ea482a0758a4fda9acabe9fa39bfe217a57e65b8041ae4436b7cef2c0b39835f3aae9590515d200b9b2962bd0610370e8454 DIST time-machine-2.14.1.gh.tar.gz 29600 BLAKE2B b118e3a2f08f75cc6cd89181a9e533c89bc6e5312a520b2a854fb8aa7ac59f1570e48a85788261f781ef83f9864380318074724f6eadab9cda7a3374b2322e7d SHA512 42a127e2dc5a86e33896010e6d141fc9248fe685d3477ec71ec8a72315914cea99ae4a4d6623a59fd69505d935d2feadcfd831a7fff5617c3f98a93d48652ecf diff --git a/dev-python/time-machine/files/time-machine-2.13.0-backport-pr400.patch b/dev-python/time-machine/files/time-machine-2.13.0-backport-pr400.patch deleted file mode 100644 index b7fa55c2e267..000000000000 --- a/dev-python/time-machine/files/time-machine-2.13.0-backport-pr400.patch +++ /dev/null @@ -1,252 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=912709 -https://github.com/adamchainz/time-machine/pull/400 - -From b489a478193982c17cf7847d32cae2b53a904222 Mon Sep 17 00:00:00 2001 -From: matoro <matoro@users.noreply.github.com> -Date: Thu, 9 Nov 2023 13:03:49 -0500 -Subject: [PATCH 1/2] Fix tests on platforms with low clock resolution - -On platforms without a high-resolution clock, such as Alpha and PA-RISC -is is likely that two sequential calls to time.time() will return the -same value if the execution time is not sufficient to allow one full -clock resolution cycle to pass. This adds sleeps of one cycle to -enforce that the minimum amount of time to guarantee a clock change has -passed. - -On systems with high-resolution clocks, clock_getres() will return 1ns; -in reality the sleep will take longer than 1ns to execute but should -still be a negligible amount of time. ---- - tests/test_time_machine.py | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/tests/test_time_machine.py b/tests/test_time_machine.py -index fe98fb7..7b5abbe 100644 ---- a/tests/test_time_machine.py -+++ b/tests/test_time_machine.py -@@ -155,8 +155,10 @@ def test_time_clock_gettime_realtime(): - @py_have_clock_gettime - def test_time_clock_gettime_monotonic_unaffected(): - start = time.clock_gettime(time.CLOCK_MONOTONIC) -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - with time_machine.travel(EPOCH + 180.0): - frozen = time.clock_gettime(time.CLOCK_MONOTONIC) -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert isinstance(frozen, float) - assert frozen > start - -@@ -169,6 +171,7 @@ def test_time_clock_gettime_monotonic_unaffected(): - def test_time_clock_gettime_ns_realtime(): - with time_machine.travel(EPOCH + 190.0): - first = time.clock_gettime_ns(time.CLOCK_REALTIME) -+ time.sleep(time.clock_getres(time.CLOCK_REALTIME)) - assert isinstance(first, int) - assert first == int((EPOCH + 190.0) * NANOSECONDS_PER_SECOND) - second = time.clock_gettime_ns(time.CLOCK_REALTIME) -@@ -182,8 +185,10 @@ def test_time_clock_gettime_ns_realtime(): - @py_have_clock_gettime - def test_time_clock_gettime_ns_monotonic_unaffected(): - start = time.clock_gettime_ns(time.CLOCK_MONOTONIC) -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - with time_machine.travel(EPOCH + 190.0): - frozen = time.clock_gettime_ns(time.CLOCK_MONOTONIC) -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert isinstance(frozen, int) - assert frozen > start - -@@ -279,6 +284,7 @@ def test_time_strftime_format_t(): - def test_time_time(): - with time_machine.travel(EPOCH): - first = time.time() -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert isinstance(first, float) - assert first == EPOCH - second = time.time() -@@ -300,6 +306,7 @@ def test_time_time(): - def test_time_time_windows(): - with time_machine.travel(EPOCH): - first = time.time() -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert isinstance(first, float) - assert first == windows_epoch_in_posix - -@@ -316,6 +323,7 @@ def test_time_time_no_tick(): - def test_time_time_ns(): - with time_machine.travel(EPOCH + 150.0): - first = time.time_ns() -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert isinstance(first, int) - assert first == int((EPOCH + 150.0) * NANOSECONDS_PER_SECOND) - second = time.time_ns() -@@ -561,6 +569,7 @@ def test_method_decorator(self): - @time_machine.travel(EPOCH + 95.0) - class UnitTestClassTests(TestCase): - def test_class_decorator(self): -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert EPOCH + 95.0 < time.time() < EPOCH + 96.0 - - @time_machine.travel(EPOCH + 25.0) -@@ -578,6 +587,7 @@ def setUpClass(cls): - cls.custom_setupclass_ran = True - - def test_class_decorator(self): -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert EPOCH + 95.0 < time.time() < EPOCH + 96.0 - assert self.custom_setupclass_ran - -@@ -639,6 +649,7 @@ def test_move_to_datetime(): - traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME) - - first = time.time() -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert first == EPOCH_PLUS_ONE_YEAR - - second = time.time() -@@ -706,6 +717,7 @@ def test_move_to_datetime_change_tick_on(): - with time_machine.travel(EPOCH, tick=False) as traveller: - traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME, tick=True) - assert time.time() == EPOCH_PLUS_ONE_YEAR -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert time.time() > EPOCH_PLUS_ONE_YEAR - - -@@ -756,6 +768,7 @@ def test_fixture_used_tick_false(time_machine): - def test_fixture_used_tick_true(time_machine): - time_machine.move_to(EPOCH, tick=True) - original = time.time() -+ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) - assert original == EPOCH - assert original < time.time() < EPOCH + 10.0 - - -From 9e84584325ec06eb997716b6a0f42e9ca6540994 Mon Sep 17 00:00:00 2001 -From: matoro <matoro@users.noreply.github.com> -Date: Fri, 10 Nov 2023 11:06:23 -0500 -Subject: [PATCH 2/2] Wrap sleep calls in "sleep_one_cycle" function - ---- - tests/test_time_machine.py | 30 +++++++++++++++++------------- - 1 file changed, 17 insertions(+), 13 deletions(-) - -diff --git a/tests/test_time_machine.py b/tests/test_time_machine.py -index 7b5abbe..163ec2b 100644 ---- a/tests/test_time_machine.py -+++ b/tests/test_time_machine.py -@@ -38,6 +38,10 @@ - ) - - -+def sleep_one_cycle(clock: int) -> None: -+ time.sleep(time.clock_getres(clock)) -+ -+ - @contextmanager - def change_local_timezone(local_tz: str | None) -> typing.Iterator[None]: - orig_tz = os.environ["TZ"] -@@ -155,10 +159,10 @@ def test_time_clock_gettime_realtime(): - @py_have_clock_gettime - def test_time_clock_gettime_monotonic_unaffected(): - start = time.clock_gettime(time.CLOCK_MONOTONIC) -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - with time_machine.travel(EPOCH + 180.0): - frozen = time.clock_gettime(time.CLOCK_MONOTONIC) -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert isinstance(frozen, float) - assert frozen > start - -@@ -171,7 +175,7 @@ def test_time_clock_gettime_monotonic_unaffected(): - def test_time_clock_gettime_ns_realtime(): - with time_machine.travel(EPOCH + 190.0): - first = time.clock_gettime_ns(time.CLOCK_REALTIME) -- time.sleep(time.clock_getres(time.CLOCK_REALTIME)) -+ sleep_one_cycle(time.CLOCK_REALTIME) - assert isinstance(first, int) - assert first == int((EPOCH + 190.0) * NANOSECONDS_PER_SECOND) - second = time.clock_gettime_ns(time.CLOCK_REALTIME) -@@ -185,10 +189,10 @@ def test_time_clock_gettime_ns_realtime(): - @py_have_clock_gettime - def test_time_clock_gettime_ns_monotonic_unaffected(): - start = time.clock_gettime_ns(time.CLOCK_MONOTONIC) -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - with time_machine.travel(EPOCH + 190.0): - frozen = time.clock_gettime_ns(time.CLOCK_MONOTONIC) -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert isinstance(frozen, int) - assert frozen > start - -@@ -284,7 +288,7 @@ def test_time_strftime_format_t(): - def test_time_time(): - with time_machine.travel(EPOCH): - first = time.time() -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert isinstance(first, float) - assert first == EPOCH - second = time.time() -@@ -306,7 +310,7 @@ def test_time_time(): - def test_time_time_windows(): - with time_machine.travel(EPOCH): - first = time.time() -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert isinstance(first, float) - assert first == windows_epoch_in_posix - -@@ -323,7 +327,7 @@ def test_time_time_no_tick(): - def test_time_time_ns(): - with time_machine.travel(EPOCH + 150.0): - first = time.time_ns() -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert isinstance(first, int) - assert first == int((EPOCH + 150.0) * NANOSECONDS_PER_SECOND) - second = time.time_ns() -@@ -569,7 +573,7 @@ def test_method_decorator(self): - @time_machine.travel(EPOCH + 95.0) - class UnitTestClassTests(TestCase): - def test_class_decorator(self): -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert EPOCH + 95.0 < time.time() < EPOCH + 96.0 - - @time_machine.travel(EPOCH + 25.0) -@@ -587,7 +591,7 @@ def setUpClass(cls): - cls.custom_setupclass_ran = True - - def test_class_decorator(self): -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert EPOCH + 95.0 < time.time() < EPOCH + 96.0 - assert self.custom_setupclass_ran - -@@ -649,7 +653,7 @@ def test_move_to_datetime(): - traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME) - - first = time.time() -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert first == EPOCH_PLUS_ONE_YEAR - - second = time.time() -@@ -717,7 +721,7 @@ def test_move_to_datetime_change_tick_on(): - with time_machine.travel(EPOCH, tick=False) as traveller: - traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME, tick=True) - assert time.time() == EPOCH_PLUS_ONE_YEAR -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert time.time() > EPOCH_PLUS_ONE_YEAR - - -@@ -768,7 +772,7 @@ def test_fixture_used_tick_false(time_machine): - def test_fixture_used_tick_true(time_machine): - time_machine.move_to(EPOCH, tick=True) - original = time.time() -- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC)) -+ sleep_one_cycle(time.CLOCK_MONOTONIC) - assert original == EPOCH - assert original < time.time() < EPOCH + 10.0 - diff --git a/dev-python/time-machine/time-machine-2.13.0.ebuild b/dev-python/time-machine/time-machine-2.13.0.ebuild deleted file mode 100644 index d5b72ed4d0a5..000000000000 --- a/dev-python/time-machine/time-machine-2.13.0.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 2022-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8,9,10,11,12} ) - -inherit distutils-r1 - -DESCRIPTION="Travel through time in your tests" -HOMEPAGE=" - https://github.com/adamchainz/time-machine/ - https://pypi.org/project/time-machine/ -" -SRC_URI=" - https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" - -RDEPEND=" - dev-python/python-dateutil[${PYTHON_USEDEP}] -" - -PATCHES=( "${FILESDIR}/${PN}-2.13.0-backport-pr400.patch" ) - -distutils_enable_tests pytest diff --git a/dev-python/time-machine/time-machine-2.14.0.ebuild b/dev-python/time-machine/time-machine-2.14.0.ebuild deleted file mode 100644 index abf76968ddb5..000000000000 --- a/dev-python/time-machine/time-machine-2.14.0.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2022-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8,9,10,11,12} ) - -inherit distutils-r1 - -DESCRIPTION="Travel through time in your tests" -HOMEPAGE=" - https://github.com/adamchainz/time-machine/ - https://pypi.org/project/time-machine/ -" -SRC_URI=" - https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" - -RDEPEND=" - dev-python/python-dateutil[${PYTHON_USEDEP}] -" - -distutils_enable_tests pytest diff --git a/dev-python/time-machine/time-machine-2.14.1.ebuild b/dev-python/time-machine/time-machine-2.14.1.ebuild index abf76968ddb5..c460c72c4c8a 100644 --- a/dev-python/time-machine/time-machine-2.14.1.ebuild +++ b/dev-python/time-machine/time-machine-2.14.1.ebuild @@ -21,7 +21,7 @@ SRC_URI=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" RDEPEND=" dev-python/python-dateutil[${PYTHON_USEDEP}] diff --git a/dev-python/twisted/Manifest b/dev-python/twisted/Manifest index 92a82f833ad9..437756ad44fa 100644 --- a/dev-python/twisted/Manifest +++ b/dev-python/twisted/Manifest @@ -1,4 +1,2 @@ -DIST twisted-23.10.0.tar.gz 3495627 BLAKE2B 3b5c2dc56686203cfe7c863211f0be34f49b26273af7b0f54a891851cf5f32096da880f35dd549b8ff82c6885fda2f644ef747fc9574e830da4fe2ddb588e70f SHA512 da6cc663005776fca716503ec53ae367576e9c89ec2b90a367e73afb1e63c51a24dfad39b9ed1edb597e77e1d805dcbd179cefc1685faddd4044efc8f6c82d5f -DIST twisted-24.2.0rc1.tar.gz 3500738 BLAKE2B d286b8bbd8e3c9bef82bf3b6a3ea3714358f4447a2bd4b3e82a0f4be0bda89c9a0804f807592dd951b6bb4ff74076b4a35a13b98d9d99e4334a644fe668f7802 SHA512 6f8946e65ec6affce5cac79a6b6019a48ba6bb9c2eb42bc2a251a50bd33eb429dd6aec570ed51ce98c618cc220451a935f8e32c93281953ef4b2a9e658793b68 DIST twisted-24.3.0.tar.gz 3500456 BLAKE2B b2cebb2f3482dbeba250786b1977ddbb09e1a9a81f71ce5906efe8289b0e134a8b26c191c2262e8ee8ba3fccccea508c34145016b29ecf301541134dcea19e08 SHA512 c3dd227f5936ffa586a0b7447f5df4c2257dce0c0ba740373d82197a72029e7eeb0aef9789247dde73e2f24dd043f3b0b7d795f16e6e908583b054aad9b9eb6a DIST twisted-regen-cache.gz 911 BLAKE2B ffd3fcda6c67ffe6fd3ef581c8d507548396b66ed0708e9a5c790095e579c0d5f0f71596acf05712989da2ddef2b8d437eca973bc4d80ef8a9fa852915f38305 SHA512 95a9b931c73017d16d1b5e6b41345dddffe62b6af1a8e93b5e40d06d3d15be17b0dd0181c767ffeeb791534d463764ef9e066fa6c2ee2ac4b53c86d1da8fce03 diff --git a/dev-python/twisted/twisted-23.10.0.ebuild b/dev-python/twisted/twisted-23.10.0.ebuild deleted file mode 100644 index eff5867241b1..000000000000 --- a/dev-python/twisted/twisted-23.10.0.ebuild +++ /dev/null @@ -1,150 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=hatchling -PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 pypi virtualx - -DESCRIPTION="An asynchronous networking framework written in Python" -HOMEPAGE=" - https://twisted.org/ - https://github.com/twisted/twisted/ - https://pypi.org/project/Twisted/ -" -SRC_URI+=" - https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos" -IUSE="conch http2 serial ssl test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}] - >=dev-python/automat-0.8.0[${PYTHON_USEDEP}] - >=dev-python/constantly-15.1[${PYTHON_USEDEP}] - >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}] - >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}] - >=dev-python/zope-interface-5[${PYTHON_USEDEP}] - conch? ( - >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] - >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}] - >=dev-python/cryptography-3.3[${PYTHON_USEDEP}] - dev-python/pyasn1[${PYTHON_USEDEP}] - ) - http2? ( - <dev-python/h2-5.0[${PYTHON_USEDEP}] - >=dev-python/h2-3.0.0[${PYTHON_USEDEP}] - <dev-python/priority-2.0[${PYTHON_USEDEP}] - >=dev-python/priority-1.1.0[${PYTHON_USEDEP}] - ) - serial? ( - >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] - ) - ssl? ( - >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}] - >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}] - >=dev-python/idna-2.4[${PYTHON_USEDEP}] - ) -" -BDEPEND=" - >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}] - >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}] - test? ( - ${RDEPEND} - $(python_gen_cond_dep ' - >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] - >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}] - >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] - <dev-python/cython-test-exception-raiser-2[${PYTHON_USEDEP}] - >=dev-python/cython-test-exception-raiser-1.0.2[${PYTHON_USEDEP}] - >=dev-python/idna-2.4[${PYTHON_USEDEP}] - >=dev-python/hypothesis-6.56[${PYTHON_USEDEP}] - dev-python/pyasn1[${PYTHON_USEDEP}] - >=dev-python/pyhamcrest-2[${PYTHON_USEDEP}] - >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] - virtual/openssh - ssl? ( - >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}] - >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}] - ) - ' "${PYTHON_TESTED[@]}") - ) -" - -python_prepare_all() { - # upstream test for making releases; not very useful and requires - # sphinx (including on py2) - rm src/twisted/python/test/test_release.py || die - - # multicast tests fail within network-sandbox - sed -e 's:test_joinLeave:_&:' \ - -e 's:test_loopback:_&:' \ - -e 's:test_multiListen:_&:' \ - -e 's:test_multicast:_&:' \ - -i src/twisted/test/test_udp.py || die - - distutils-r1_python_prepare_all -} - -src_test() { - # the test suite handles missing file & failing ioctl()s gracefully - # but not permission errors from sandbox - addwrite /dev/net/tun - virtx distutils-r1_src_test -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON} (xfail)" - return - fi - - "${EPYTHON}" -m twisted.trial twisted || - die "Tests failed with ${EPYTHON}" -} - -python_install() { - distutils-r1_python_install - - # own the dropin.cache so we don't leave orphans - > "${D}$(python_get_sitedir)"/twisted/plugins/dropin.cache || die - - python_doscript "${WORKDIR}"/twisted-regen-cache -} - -python_install_all() { - distutils-r1_python_install_all - - newconfd "${FILESDIR}/twistd.conf" twistd - newinitd "${FILESDIR}/twistd.init" twistd -} - -python_postinst() { - twisted-regen-cache || die -} - -pkg_postinst() { - if [[ -z ${ROOT} ]]; then - python_foreach_impl python_postinst - fi -} - -python_postrm() { - rm -f "${ROOT}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die -} - -pkg_postrm() { - # if we're removing the last version, remove the cache file - if [[ ! ${REPLACING_VERSIONS} ]]; then - python_foreach_impl python_postrm - fi -} diff --git a/dev-python/twisted/twisted-24.2.0_rc1.ebuild b/dev-python/twisted/twisted-24.2.0_rc1.ebuild deleted file mode 100644 index bb8156f8cacc..000000000000 --- a/dev-python/twisted/twisted-24.2.0_rc1.ebuild +++ /dev/null @@ -1,152 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=hatchling -PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 pypi virtualx - -DESCRIPTION="An asynchronous networking framework written in Python" -HOMEPAGE=" - https://twisted.org/ - https://github.com/twisted/twisted/ - https://pypi.org/project/Twisted/ -" -SRC_URI+=" - https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="conch http2 serial ssl test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}] - >=dev-python/automat-0.8.0[${PYTHON_USEDEP}] - >=dev-python/constantly-15.1[${PYTHON_USEDEP}] - >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}] - >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}] - >=dev-python/zope-interface-5[${PYTHON_USEDEP}] - conch? ( - >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] - >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}] - >=dev-python/cryptography-3.3[${PYTHON_USEDEP}] - dev-python/pyasn1[${PYTHON_USEDEP}] - ) - http2? ( - <dev-python/h2-5.0[${PYTHON_USEDEP}] - >=dev-python/h2-3.0.0[${PYTHON_USEDEP}] - <dev-python/priority-2.0[${PYTHON_USEDEP}] - >=dev-python/priority-1.1.0[${PYTHON_USEDEP}] - ) - serial? ( - >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] - ) - ssl? ( - >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}] - >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}] - >=dev-python/idna-2.4[${PYTHON_USEDEP}] - ) -" -BDEPEND=" - >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}] - >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}] - test? ( - ${RDEPEND} - $(python_gen_cond_dep ' - >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] - >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}] - >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] - <dev-python/cython-test-exception-raiser-2[${PYTHON_USEDEP}] - >=dev-python/cython-test-exception-raiser-1.0.2[${PYTHON_USEDEP}] - >=dev-python/idna-2.4[${PYTHON_USEDEP}] - >=dev-python/hypothesis-6.56[${PYTHON_USEDEP}] - dev-python/pyasn1[${PYTHON_USEDEP}] - >=dev-python/pyhamcrest-2[${PYTHON_USEDEP}] - >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] - virtual/openssh - ssl? ( - >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}] - >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}] - ) - ' "${PYTHON_TESTED[@]}") - ) -" - -python_prepare_all() { - # upstream test for making releases; not very useful and requires - # sphinx (including on py2) - rm src/twisted/python/test/test_release.py || die - - # multicast tests fail within network-sandbox - sed -e 's:test_joinLeave:_&:' \ - -e 's:test_loopback:_&:' \ - -e 's:test_multiListen:_&:' \ - -e 's:test_multicast:_&:' \ - -i src/twisted/test/test_udp.py || die - - distutils-r1_python_prepare_all -} - -src_test() { - # the test suite handles missing file & failing ioctl()s gracefully - # but not permission errors from sandbox - addwrite /dev/net/tun - virtx distutils-r1_src_test -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON} (xfail)" - return - fi - - # breaks some tests by overriding empty environment - local -x SANDBOX_ON=0 - "${EPYTHON}" -m twisted.trial twisted || - die "Tests failed with ${EPYTHON}" -} - -python_install() { - distutils-r1_python_install - - # own the dropin.cache so we don't leave orphans - > "${D}$(python_get_sitedir)"/twisted/plugins/dropin.cache || die - - python_doscript "${WORKDIR}"/twisted-regen-cache -} - -python_install_all() { - distutils-r1_python_install_all - - newconfd "${FILESDIR}/twistd.conf" twistd - newinitd "${FILESDIR}/twistd.init" twistd -} - -python_postinst() { - twisted-regen-cache || die -} - -pkg_postinst() { - if [[ -z ${ROOT} ]]; then - python_foreach_impl python_postinst - fi -} - -python_postrm() { - rm -f "${ROOT}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die -} - -pkg_postrm() { - # if we're removing the last version, remove the cache file - if [[ ! ${REPLACING_VERSIONS} ]]; then - python_foreach_impl python_postrm - fi -} diff --git a/dev-python/twisted/twisted-24.3.0.ebuild b/dev-python/twisted/twisted-24.3.0.ebuild index 8c9891220d14..b7b426423dca 100644 --- a/dev-python/twisted/twisted-24.3.0.ebuild +++ b/dev-python/twisted/twisted-24.3.0.ebuild @@ -22,7 +22,7 @@ SRC_URI+=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos" IUSE="conch http2 serial ssl test" RESTRICT="!test? ( test )" diff --git a/dev-python/zenlib/Manifest b/dev-python/zenlib/Manifest index 4490a77826d2..adb53ea80633 100644 --- a/dev-python/zenlib/Manifest +++ b/dev-python/zenlib/Manifest @@ -6,4 +6,4 @@ DIST zenlib-1.7.2.tar.gz 16853 BLAKE2B 9659723441c9e651e6a80a47565aeeb6bda67db04 DIST zenlib-1.7.3.tar.gz 16924 BLAKE2B 20bab075d9a09062e2d596238237a2684c206cc1606f7796a1ddf6421902a523731bcfad9c96b803be3d91ff6ee508bdb9553a0f90295aa3f56e64e87ba37f21 SHA512 f5f8ad560e74051e5daf7515b3777ff17e86d202f6c8958e476d22677a65454512db5a93f1281202fc058742da0f8fe0296339da68d5ce109ab93e33948eb79b DIST zenlib-1.7.4.tar.gz 16949 BLAKE2B 6bc770d55207e3f532106b2511a3cd1c2161a7228e6be5161115f59d95213d6328da2347a9f19402c422651cdf1af3977c70828028c898f701218e50ef7217a9 SHA512 1b4d41da207cdc819c85a568a3f13555b7271bde066a7bf89ad11077ed42d5fd1b1227d1d789ed583e6b2aa2de4aae26a0da0be9ea6f59d0a262bdebae423104 DIST zenlib-2.0.0.tar.gz 16921 BLAKE2B a9bedfd8bd28e2f50bbc11dbab21ba6c0f35b60e4e1438b1ad7666ed3b8688a6b9c611f88d8fbf915f69ebddc5420315080a6a0a8ed2983d14125bb28d091749 SHA512 2e4fa3d299d8da79930ea3a0f948472d49fb430727f100bb6b9f9e28d4792a229d2dc33ecaabd20d9e790a783acecb1ccb00381b97dcc02f8c5353abef74fb31 -DIST zenlib-2.0.1.tar.gz 16943 BLAKE2B dc8b1e648f50a9e2e7413ddd7beee4d8fbe698c53dd00f9f4e81c12aceda56f01aa3a33e505926ae32bbd83acafd61e4427a2cdbed5bee801513b6c5bf1a7e3b SHA512 2390888667b3745e93cd591a76c0bb3445be8ace7c24d625e3f2a2e572ec6ab1fc9e2f1c642920a98740d726cf06f4e3cb602d629881806ac72d8b2c45045a67 +DIST zenlib-2.0.3.tar.gz 16963 BLAKE2B 8f99930e6d014268c216b45399f75c378abd114db270c40fcec0c4a460f8915b7338d51e83985612107bf623939bd8db050bac9e883b8a6f539783fd3ab57f71 SHA512 6e8bf2b199385095d5f2d2bc531dee409912e56d19712d9f458627f7dd14927dfc9d3845867e9e634417d76bdfe9783b5373965f746abf49e033875b853e6d3f diff --git a/dev-python/zenlib/zenlib-2.0.1.ebuild b/dev-python/zenlib/zenlib-2.0.3.ebuild index 3b19cd41c055..3b19cd41c055 100644 --- a/dev-python/zenlib/zenlib-2.0.1.ebuild +++ b/dev-python/zenlib/zenlib-2.0.3.ebuild |
