update-plugin-list: use json, use http caching, use gh action caches

this change
* switches from html index usage to json index usage
* adds using requests-cache as http cache to trim down runtime
* adds gh action caches for pip and the new http cache
This commit is contained in:
Ronny Pfannschmidt 2023-04-24 17:12:25 +02:00
parent 1de0923e83
commit 1ded74739b
3 changed files with 134 additions and 41 deletions

View File

@ -27,12 +27,20 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: "3.8"
cache: pip
- name: requests-cache
uses: actions/cache@v3
with:
path: ~/.cache/pytest-plugin-list/
key: plugins-http-cache-${{ github.run_id }} # Can use time based key as well
restore-keys: plugins-http-cache-
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install packaging requests tabulate[widechars] tqdm
pip install packaging requests tabulate[widechars] tqdm requests-cache platformdirs
- name: Update Plugin List
run: python scripts/update-plugin-list.py

View File

@ -1,4 +1,6 @@
.. Note this file is autogenerated by scripts/update-plugin-list.py - usually weekly via github action
.. _plugin-list:
Plugin List
@ -13,7 +15,7 @@ Packages classified as inactive are excluded.
creating a PDF, because otherwise the table gets far too wide for the
page.
This list contains 1283 plugins.
This list contains 1289 plugins.
.. only:: not latex
@ -198,7 +200,7 @@ This list contains 1283 plugins.
:pypi:`pytest-cloud` Distributed tests planner plugin for pytest testing framework. Oct 05, 2020 6 - Mature N/A
:pypi:`pytest-cloudflare-worker` pytest plugin for testing cloudflare workers Mar 30, 2021 4 - Beta pytest (>=6.0.0)
:pypi:`pytest-cloudist` Distribute tests to cloud machines without fuss Sep 02, 2022 4 - Beta pytest (>=7.1.2,<8.0.0)
:pypi:`pytest-cmake` Provide CMake module for Pytest Jan 21, 2023 N/A pytest<8,>=4
:pypi:`pytest-cmake` Provide CMake module for Pytest Jul 19, 2023 N/A pytest<8,>=4
:pypi:`pytest-cmake-presets` Execute CMake Presets via pytest Dec 26, 2022 N/A pytest (>=7.2.0,<8.0.0)
:pypi:`pytest-cobra` PyTest plugin for testing Smart Contracts for Ethereum blockchain. Jun 29, 2019 3 - Alpha pytest (<4.0.0,>=3.7.1)
:pypi:`pytest-codecarbon` Pytest plugin for measuring carbon emissions Jun 15, 2022 N/A pytest
@ -301,7 +303,7 @@ This list contains 1283 plugins.
:pypi:`pytest-dir-equal` pytest-dir-equals is a pytest plugin providing helpers to assert directories equality allowing golden testing Jun 23, 2023 4 - Beta pytest>=7.1.2
:pypi:`pytest-disable` pytest plugin to disable a test and skip it from testrun Sep 10, 2015 4 - Beta N/A
:pypi:`pytest-disable-plugin` Disable plugins per test Feb 28, 2019 4 - Beta pytest (>=3.5.0)
:pypi:`pytest-discord` A pytest plugin to notify test results to a Discord channel. Jul 15, 2023 4 - Beta pytest (!=6.0.0,<8,>=3.3.2)
:pypi:`pytest-discord` A pytest plugin to notify test results to a Discord channel. Jul 16, 2023 4 - Beta pytest (!=6.0.0,<8,>=3.3.2)
:pypi:`pytest-django` A Django plugin for pytest. Dec 07, 2021 5 - Production/Stable pytest (>=5.4.0)
:pypi:`pytest-django-ahead` A Django plugin for pytest. Oct 27, 2016 5 - Production/Stable pytest (>=2.9)
:pypi:`pytest-djangoapp` Nice pytest plugin to help you with Django pluggable application testing. May 19, 2023 4 - Beta pytest
@ -325,7 +327,7 @@ This list contains 1283 plugins.
:pypi:`pytest-doc` A documentation plugin for py.test. Jun 28, 2015 5 - Production/Stable N/A
:pypi:`pytest-docfiles` pytest plugin to test codeblocks in your documentation. Dec 22, 2021 4 - Beta pytest (>=3.7.0)
:pypi:`pytest-docgen` An RST Documentation Generator for pytest-based test suites Apr 17, 2020 N/A N/A
:pypi:`pytest-docker` Simple pytest fixtures for Docker and docker-compose based tests Sep 14, 2022 N/A pytest (<8.0,>=4.0)
:pypi:`pytest-docker` Simple pytest fixtures for Docker and Docker Compose based tests Jul 19, 2023 N/A pytest (<8.0,>=4.0)
:pypi:`pytest-docker-apache-fixtures` Pytest fixtures for testing with apache2 (httpd). Feb 16, 2022 4 - Beta pytest
:pypi:`pytest-docker-butla` Jun 16, 2019 3 - Alpha N/A
:pypi:`pytest-dockerc` Run, manage and stop Docker Compose project from Docker API Oct 09, 2020 5 - Production/Stable pytest (>=3.0)
@ -355,7 +357,7 @@ This list contains 1283 plugins.
:pypi:`pytest-drf` A Django REST framework plugin for pytest. Jul 12, 2022 5 - Production/Stable pytest (>=3.7)
:pypi:`pytest-drivings` Tool to allow webdriver automation to be ran locally or remotely Jan 13, 2021 N/A N/A
:pypi:`pytest-drop-dup-tests` A Pytest plugin to drop duplicated tests during collection May 23, 2020 4 - Beta pytest (>=2.7)
:pypi:`pytest-dryrun` A Pytest plugin to ignore tests during collection without reporting them in the test summary. Jul 11, 2023 N/A pytest (>=7.4.0,<8.0.0)
:pypi:`pytest-dryrun` A Pytest plugin to ignore tests during collection without reporting them in the test summary. Jul 18, 2023 5 - Production/Stable pytest (>=7.4.0,<8.0.0)
:pypi:`pytest-dummynet` A py.test plugin providing access to a dummynet. Dec 15, 2021 5 - Production/Stable pytest
:pypi:`pytest-dump2json` A pytest plugin for dumping test results to json. Jun 29, 2015 N/A N/A
:pypi:`pytest-duration-insights` Jun 25, 2021 N/A N/A
@ -651,7 +653,7 @@ This list contains 1283 plugins.
:pypi:`pytest-live` Live results for pytest Mar 08, 2020 N/A pytest
:pypi:`pytest-local-badge` Generate local badges (shields) reporting your test suite status. Jan 15, 2023 N/A pytest (>=6.1.0)
:pypi:`pytest-localftpserver` A PyTest plugin which provides an FTP fixture for your tests Oct 04, 2022 5 - Production/Stable pytest
:pypi:`pytest-localserver` pytest plugin to test server connections locally. Jan 30, 2023 4 - Beta N/A
:pypi:`pytest-localserver` pytest plugin to test server connections locally. Jul 16, 2023 4 - Beta N/A
:pypi:`pytest-localstack` Pytest plugin for AWS integration tests Jun 07, 2023 4 - Beta pytest (>=6.0.0,<7.0.0)
:pypi:`pytest-lockable` lockable resource plugin for pytest Jul 20, 2022 5 - Production/Stable pytest
:pypi:`pytest-locker` Used to lock object during testing. Essentially changing assertions from being hard coded to asserting that nothing changed Oct 29, 2021 N/A pytest (>=5.4)
@ -662,7 +664,7 @@ This list contains 1283 plugins.
:pypi:`pytest-logger` Plugin configuring handlers for loggers from Python logging module. Jul 25, 2019 4 - Beta pytest (>=3.2)
:pypi:`pytest-logging` Configures logging and allows tweaking the log level with a py.test flag Nov 04, 2015 4 - Beta N/A
:pypi:`pytest-logging-end-to-end-test-tool` Sep 23, 2022 N/A pytest (>=7.1.2,<8.0.0)
:pypi:`pytest-logikal` Common testing environment Jun 22, 2023 5 - Production/Stable pytest (==7.3.1)
:pypi:`pytest-logikal` Common testing environment Jul 17, 2023 5 - Production/Stable pytest (==7.4.0)
:pypi:`pytest-log-report` Package for creating a pytest test run reprot Dec 26, 2019 N/A N/A
:pypi:`pytest-loguru` Pytest Loguru Apr 12, 2022 5 - Production/Stable N/A
:pypi:`pytest-loop` pytest plugin for looping tests Jul 22, 2022 5 - Production/Stable pytest (>=6)
@ -684,7 +686,7 @@ This list contains 1283 plugins.
:pypi:`pytest-maybe-raises` Pytest fixture for optional exception testing. May 27, 2022 N/A pytest ; extra == 'dev'
:pypi:`pytest-mccabe` pytest plugin to run the mccabe code complexity checker. Jul 22, 2020 3 - Alpha pytest (>=5.4.0)
:pypi:`pytest-md` Plugin for generating Markdown reports for pytest results Jul 11, 2019 3 - Alpha pytest (>=4.2.1)
:pypi:`pytest-md-report` A pytest plugin to make a test results report with Markdown table format. Jun 25, 2023 4 - Beta pytest (!=6.0.0,<8,>=3.3.2)
:pypi:`pytest-md-report` A pytest plugin to make a test results report with Markdown table format. Jul 16, 2023 4 - Beta pytest (!=6.0.0,<8,>=3.3.2)
:pypi:`pytest-memlog` Log memory usage during tests May 03, 2023 N/A pytest (>=7.3.0,<8.0.0)
:pypi:`pytest-memprof` Estimates memory consumption of test functions Mar 29, 2019 4 - Beta N/A
:pypi:`pytest-memray` A simple plugin to use with pytest Jun 06, 2023 N/A pytest>=7.2
@ -716,6 +718,7 @@ This list contains 1283 plugins.
:pypi:`pytest-modifyjunit` Utility for adding additional properties to junit xml for IDM QE Jan 10, 2019 N/A N/A
:pypi:`pytest-modifyscope` pytest plugin to modify fixture scope Apr 12, 2020 N/A pytest
:pypi:`pytest-molecule` PyTest Molecule Plugin :: discover and run molecule tests Mar 29, 2022 5 - Production/Stable pytest (>=7.0.0)
:pypi:`pytest-molecule-JC` PyTest Molecule Plugin :: discover and run molecule tests Jul 18, 2023 5 - Production/Stable pytest (>=7.0.0)
:pypi:`pytest-mongo` MongoDB process and client fixtures plugin for Pytest. Jun 07, 2021 5 - Production/Stable pytest
:pypi:`pytest-mongodb` pytest plugin for MongoDB fixtures May 16, 2023 5 - Production/Stable N/A
:pypi:`pytest-monitor` Pytest plugin for analyzing resource usage. Jun 25, 2023 5 - Production/Stable pytest
@ -740,6 +743,7 @@ This list contains 1283 plugins.
:pypi:`pytest-mypy-plugins-shim` Substitute for "pytest-mypy-plugins" for Python implementations which aren't supported by mypy. Apr 12, 2021 N/A pytest>=6.0.0
:pypi:`pytest-mypy-testing` Pytest plugin to check mypy output. Feb 25, 2023 N/A pytest>=7,<8
:pypi:`pytest-mysql` MySQL process and client fixtures for pytest Mar 27, 2023 5 - Production/Stable pytest (>=6.2)
:pypi:`pytest-ndb` Open Source Software Health Report Jul 19, 2023 N/A pytest
:pypi:`pytest-needle` pytest plugin for visual testing websites using selenium Dec 10, 2018 4 - Beta pytest (<5.0.0,>=3.0.0)
:pypi:`pytest-neo` pytest-neo is a plugin for pytest that shows tests like screen of Matrix. Jan 08, 2022 3 - Alpha pytest (>=6.2.0)
:pypi:`pytest-netdut` "Automated software testing for switches using pytest" Jul 06, 2023 N/A pytest (>=3.5.0)
@ -766,6 +770,7 @@ This list contains 1283 plugins.
:pypi:`pytest-oar` PyTest plugin for the OAR testing framework May 02, 2023 N/A pytest>=6.0.1
:pypi:`pytest-object-getter` Import any object from a 3rd party module while mocking its namespace on demand. Jul 31, 2022 5 - Production/Stable pytest
:pypi:`pytest-ochrus` pytest results data-base and HTML reporter Feb 21, 2018 4 - Beta N/A
:pypi:`pytest-odc` A pytest plugin for simplifying ODC database tests Jul 18, 2023 4 - Beta pytest (>=3.5.0)
:pypi:`pytest-odoo` py.test plugin to run Odoo tests Jul 06, 2023 4 - Beta pytest (>=7.2.0)
:pypi:`pytest-odoo-fixtures` Project description Jun 25, 2019 N/A N/A
:pypi:`pytest-oerp` pytest plugin to test OpenERP modules Feb 28, 2012 3 - Alpha N/A
@ -864,6 +869,7 @@ This list contains 1283 plugins.
:pypi:`pytest-prometheus` Report test pass / failures to a Prometheus PushGateway Oct 03, 2017 N/A N/A
:pypi:`pytest-prometheus-pushgateway` Pytest report plugin for Zulip Sep 27, 2022 5 - Production/Stable pytest
:pypi:`pytest-prosper` Test helpers for Prosper projects Sep 24, 2018 N/A N/A
:pypi:`pytest-prysk` Pytest plugin for prysk Jul 18, 2023 4 - Beta pytest (>=7.3.2,<8.0.0)
:pypi:`pytest-pspec` A rspec format reporter for Python ptest Jun 02, 2020 4 - Beta pytest (>=3.0.0)
:pypi:`pytest-psqlgraph` pytest plugin for testing applications that use psqlgraph Oct 19, 2021 4 - Beta pytest (>=6.0)
:pypi:`pytest-ptera` Use ptera probes in tests Mar 01, 2022 N/A pytest (>=6.2.4,<7.0.0)
@ -949,7 +955,7 @@ This list contains 1283 plugins.
:pypi:`pytest-reportlog` Replacement for the --resultlog option, focused in simplicity and extensibility May 22, 2023 3 - Alpha pytest
:pypi:`pytest-report-me` A pytest plugin to generate report. Dec 31, 2020 N/A pytest
:pypi:`pytest-report-parameters` pytest plugin for adding tests' parameters to junit report Jun 18, 2020 3 - Alpha pytest (>=2.4.2)
:pypi:`pytest-reportportal` Agent for Reporting results of tests to the Report Portal Jun 30, 2023 N/A pytest (>=3.8.0)
:pypi:`pytest-reportportal` Agent for Reporting results of tests to the Report Portal Jul 18, 2023 N/A pytest (>=3.8.0)
:pypi:`pytest-reports` An interesting python package Jun 07, 2023 N/A N/A
:pypi:`pytest-reqs` pytest plugin to check pinned requirements May 12, 2019 N/A pytest (>=2.4.2)
:pypi:`pytest-requests` A simple plugin to use with pytest Jun 24, 2019 4 - Beta pytest (>=3.5.0)
@ -1008,14 +1014,15 @@ This list contains 1283 plugins.
:pypi:`pytest-sanic` a pytest plugin for Sanic Oct 25, 2021 N/A pytest (>=5.2)
:pypi:`pytest-sanity` Dec 07, 2020 N/A N/A
:pypi:`pytest-sa-pg` May 14, 2019 N/A N/A
:pypi:`pytest-sbase` A complete web automation framework for end-to-end testing. Jul 13, 2023 5 - Production/Stable N/A
:pypi:`pytest-sbase` A complete web automation framework for end-to-end testing. Jul 20, 2023 5 - Production/Stable N/A
:pypi:`pytest-scenario` pytest plugin for test scenarios Feb 06, 2017 3 - Alpha N/A
:pypi:`pytest-schedule` The job of test scheduling for humans. Jan 07, 2023 5 - Production/Stable N/A
:pypi:`pytest-schema` 👍 Validate return values against a schema-like object in testing Mar 14, 2022 5 - Production/Stable pytest (>=3.5.0)
:pypi:`pytest-screenshot-on-failure` Saves a screenshot when a test case from a pytest execution fails Jul 18, 2023 4 - Beta N/A
:pypi:`pytest-securestore` An encrypted password store for use within pytest cases Nov 08, 2021 4 - Beta N/A
:pypi:`pytest-select` A pytest plugin which allows to (de-)select tests from a file. Jan 18, 2019 3 - Alpha pytest (>=3.0)
:pypi:`pytest-selenium` pytest plugin for Selenium May 28, 2023 5 - Production/Stable pytest>=6.0.0
:pypi:`pytest-seleniumbase` A complete web automation framework for end-to-end testing. Jul 13, 2023 5 - Production/Stable N/A
:pypi:`pytest-seleniumbase` A complete web automation framework for end-to-end testing. Jul 20, 2023 5 - Production/Stable N/A
:pypi:`pytest-selenium-enhancer` pytest plugin for Selenium Apr 29, 2022 5 - Production/Stable N/A
:pypi:`pytest-selenium-pdiff` A pytest package implementing perceptualdiff for Selenium tests. Apr 06, 2017 2 - Pre-Alpha N/A
:pypi:`pytest-send-email` Send pytest execution result email Dec 04, 2019 N/A N/A
@ -1067,6 +1074,7 @@ This list contains 1283 plugins.
:pypi:`pytest-soft-assertions` May 05, 2020 3 - Alpha pytest
:pypi:`pytest-solidity` A PyTest library plugin for Solidity language. Jan 15, 2022 1 - Planning pytest (<7,>=6.0.1) ; extra == 'tests'
:pypi:`pytest-solr` Solr process and client fixtures for py.test. May 11, 2020 3 - Alpha pytest (>=3.0.0)
:pypi:`pytest-sort` Tools for sorting test cases Jul 17, 2023 N/A pytest (>=7.0.0)
:pypi:`pytest-sorter` A simple plugin to first execute tests that historically failed more Apr 20, 2021 4 - Beta pytest (>=3.1.1)
:pypi:`pytest-sosu` Unofficial PyTest plugin for Sauce Labs Feb 14, 2023 2 - Pre-Alpha pytest
:pypi:`pytest-sourceorder` Test-ordering plugin for pytest Sep 01, 2021 4 - Beta pytest
@ -1167,7 +1175,7 @@ This list contains 1283 plugins.
:pypi:`pytest-test-this` Plugin for py.test to run relevant tests, based on naively checking if a test contains a reference to the symbol you supply Sep 15, 2019 2 - Pre-Alpha pytest (>=2.3)
:pypi:`pytest-test-utils` Jul 14, 2022 N/A pytest (>=5)
:pypi:`pytest-tesults` Tesults plugin for pytest Dec 23, 2022 5 - Production/Stable pytest (>=3.5.0)
:pypi:`pytest-textual-snapshot` Snapshot testing for Textual apps Jul 12, 2023 4 - Beta pytest (>=7.0.0)
:pypi:`pytest-textual-snapshot` Snapshot testing for Textual apps Jul 18, 2023 4 - Beta pytest (>=7.0.0)
:pypi:`pytest-tezos` pytest-ligo Jan 16, 2020 4 - Beta N/A
:pypi:`pytest-th2-bdd` pytest_th2_bdd May 13, 2022 N/A N/A
:pypi:`pytest-thawgun` Pytest plugin for time travel May 26, 2020 3 - Alpha N/A
@ -2555,7 +2563,7 @@ This list contains 1283 plugins.
Distribute tests to cloud machines without fuss
:pypi:`pytest-cmake`
*last release*: Jan 21, 2023,
*last release*: Jul 19, 2023,
*status*: N/A,
*requires*: pytest<8,>=4
@ -3276,7 +3284,7 @@ This list contains 1283 plugins.
Disable plugins per test
:pypi:`pytest-discord`
*last release*: Jul 15, 2023,
*last release*: Jul 16, 2023,
*status*: 4 - Beta,
*requires*: pytest (!=6.0.0,<8,>=3.3.2)
@ -3444,11 +3452,11 @@ This list contains 1283 plugins.
An RST Documentation Generator for pytest-based test suites
:pypi:`pytest-docker`
*last release*: Sep 14, 2022,
*last release*: Jul 19, 2023,
*status*: N/A,
*requires*: pytest (<8.0,>=4.0)
Simple pytest fixtures for Docker and docker-compose based tests
Simple pytest fixtures for Docker and Docker Compose based tests
:pypi:`pytest-docker-apache-fixtures`
*last release*: Feb 16, 2022,
@ -3654,8 +3662,8 @@ This list contains 1283 plugins.
A Pytest plugin to drop duplicated tests during collection
:pypi:`pytest-dryrun`
*last release*: Jul 11, 2023,
*status*: N/A,
*last release*: Jul 18, 2023,
*status*: 5 - Production/Stable,
*requires*: pytest (>=7.4.0,<8.0.0)
A Pytest plugin to ignore tests during collection without reporting them in the test summary.
@ -5726,7 +5734,7 @@ This list contains 1283 plugins.
A PyTest plugin which provides an FTP fixture for your tests
:pypi:`pytest-localserver`
*last release*: Jan 30, 2023,
*last release*: Jul 16, 2023,
*status*: 4 - Beta,
*requires*: N/A
@ -5803,9 +5811,9 @@ This list contains 1283 plugins.
:pypi:`pytest-logikal`
*last release*: Jun 22, 2023,
*last release*: Jul 17, 2023,
*status*: 5 - Production/Stable,
*requires*: pytest (==7.3.1)
*requires*: pytest (==7.4.0)
Common testing environment
@ -5957,7 +5965,7 @@ This list contains 1283 plugins.
Plugin for generating Markdown reports for pytest results
:pypi:`pytest-md-report`
*last release*: Jun 25, 2023,
*last release*: Jul 16, 2023,
*status*: 4 - Beta,
*requires*: pytest (!=6.0.0,<8,>=3.3.2)
@ -6180,6 +6188,13 @@ This list contains 1283 plugins.
PyTest Molecule Plugin :: discover and run molecule tests
:pypi:`pytest-molecule-JC`
*last release*: Jul 18, 2023,
*status*: 5 - Production/Stable,
*requires*: pytest (>=7.0.0)
PyTest Molecule Plugin :: discover and run molecule tests
:pypi:`pytest-mongo`
*last release*: Jun 07, 2021,
*status*: 5 - Production/Stable,
@ -6348,6 +6363,13 @@ This list contains 1283 plugins.
MySQL process and client fixtures for pytest
:pypi:`pytest-ndb`
*last release*: Jul 19, 2023,
*status*: N/A,
*requires*: pytest
Open Source Software Health Report
:pypi:`pytest-needle`
*last release*: Dec 10, 2018,
*status*: 4 - Beta,
@ -6530,6 +6552,13 @@ This list contains 1283 plugins.
pytest results data-base and HTML reporter
:pypi:`pytest-odc`
*last release*: Jul 18, 2023,
*status*: 4 - Beta,
*requires*: pytest (>=3.5.0)
A pytest plugin for simplifying ODC database tests
:pypi:`pytest-odoo`
*last release*: Jul 06, 2023,
*status*: 4 - Beta,
@ -7216,6 +7245,13 @@ This list contains 1283 plugins.
Test helpers for Prosper projects
:pypi:`pytest-prysk`
*last release*: Jul 18, 2023,
*status*: 4 - Beta,
*requires*: pytest (>=7.3.2,<8.0.0)
Pytest plugin for prysk
:pypi:`pytest-pspec`
*last release*: Jun 02, 2020,
*status*: 4 - Beta,
@ -7812,7 +7848,7 @@ This list contains 1283 plugins.
pytest plugin for adding tests' parameters to junit report
:pypi:`pytest-reportportal`
*last release*: Jun 30, 2023,
*last release*: Jul 18, 2023,
*status*: N/A,
*requires*: pytest (>=3.8.0)
@ -8225,7 +8261,7 @@ This list contains 1283 plugins.
:pypi:`pytest-sbase`
*last release*: Jul 13, 2023,
*last release*: Jul 20, 2023,
*status*: 5 - Production/Stable,
*requires*: N/A
@ -8252,6 +8288,13 @@ This list contains 1283 plugins.
👍 Validate return values against a schema-like object in testing
:pypi:`pytest-screenshot-on-failure`
*last release*: Jul 18, 2023,
*status*: 4 - Beta,
*requires*: N/A
Saves a screenshot when a test case from a pytest execution fails
:pypi:`pytest-securestore`
*last release*: Nov 08, 2021,
*status*: 4 - Beta,
@ -8274,7 +8317,7 @@ This list contains 1283 plugins.
pytest plugin for Selenium
:pypi:`pytest-seleniumbase`
*last release*: Jul 13, 2023,
*last release*: Jul 20, 2023,
*status*: 5 - Production/Stable,
*requires*: N/A
@ -8637,6 +8680,13 @@ This list contains 1283 plugins.
Solr process and client fixtures for py.test.
:pypi:`pytest-sort`
*last release*: Jul 17, 2023,
*status*: N/A,
*requires*: pytest (>=7.0.0)
Tools for sorting test cases
:pypi:`pytest-sorter`
*last release*: Apr 20, 2021,
*status*: 4 - Beta,
@ -9338,7 +9388,7 @@ This list contains 1283 plugins.
Tesults plugin for pytest
:pypi:`pytest-textual-snapshot`
*last release*: Jul 12, 2023,
*last release*: Jul 18, 2023,
*status*: 4 - Beta,
*requires*: pytest (>=7.0.0)

View File

@ -5,12 +5,19 @@ from textwrap import dedent
from textwrap import indent
import packaging.version
import requests
import platformdirs
import tabulate
import wcwidth
from requests_cache import CachedResponse
from requests_cache import CachedSession
from requests_cache import OriginalResponse
from requests_cache import SQLiteCache
from tqdm import tqdm
FILE_HEAD = r"""
.. Note this file is autogenerated by scripts/update-plugin-list.py - usually weekly via github action
.. _plugin-list:
Plugin List
@ -53,19 +60,47 @@ def escape_rst(text: str) -> str:
return text
def project_response_with_refresh(
session: CachedSession, name: str, last_serial: int
) -> OriginalResponse | CachedResponse:
"""Get a http cached pypi project
force refresh in case of last serial mismatch
"""
response = session.get(f"https://pypi.org/pypi/{name}/json")
if int(response.headers.get("X-PyPI-Last-Serial", -1)) != last_serial:
response = session.get(f"https://pypi.org/pypi/{name}/json", refresh=True)
return response
def get_session() -> CachedSession:
"""Configures the requests-cache session"""
cache_path = platformdirs.user_cache_path("pytest-plugin-list")
cache_path.mkdir(exist_ok=True, parents=True)
cache_file = cache_path.joinpath("http_cache.sqlite3")
return CachedSession(backend=SQLiteCache(cache_file))
def pytest_plugin_projects_from_pypi(session: CachedSession) -> dict[str, int]:
response = session.get(
"https://pypi.org/simple",
headers={"Accept": "application/vnd.pypi.simple.v1+json"},
refresh=True,
)
return {
name: p["_last-serial"]
for p in response.json()["projects"]
if (name := p["name"]).startswith("pytest-") or name in ADDITIONAL_PROJECTS
}
def iter_plugins():
regex = r">([\d\w-]*)</a>"
response = requests.get("https://pypi.org/simple")
session = get_session()
name_2_serial = pytest_plugin_projects_from_pypi(session)
match_names = (match.groups()[0] for match in re.finditer(regex, response.text))
plugin_names = [
name
for name in match_names
if name.startswith("pytest-") or name in ADDITIONAL_PROJECTS
]
for name in tqdm(plugin_names, smoothing=0):
response = requests.get(f"https://pypi.org/pypi/{name}/json")
for name, last_serial in tqdm(name_2_serial.items(), smoothing=0):
response = project_response_with_refresh(session, name, last_serial)
if response.status_code == 404:
# Some packages, like pytest-azurepipelines42, are included in https://pypi.org/simple
# but return 404 on the JSON API. Skip.
@ -136,7 +171,7 @@ def plugin_definitions(plugins):
def main():
plugins = list(iter_plugins())
plugins = [*iter_plugins()]
reference_dir = pathlib.Path("doc", "en", "reference")