{"id":21413510,"url":"https://github.com/56kyle/pytest-static","last_synced_at":"2025-07-17T23:14:14.517Z","repository":{"id":162729808,"uuid":"637221338","full_name":"56kyle/pytest-static","owner":"56kyle","description":"A Pytest plugin that helps automate testing of code that mimics statically typed design patterns.","archived":false,"fork":false,"pushed_at":"2025-06-16T12:02:45.000Z","size":850,"stargazers_count":4,"open_issues_count":17,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-05T07:50:09.789Z","etag":null,"topics":["pypi-package","pytest","pytest-fixtures","pytest-plugin","python"],"latest_commit_sha":null,"homepage":"https://github.com/56kyle/pytest-static","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/56kyle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-06T22:04:10.000Z","updated_at":"2025-05-27T17:21:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"2f297c85-a4c8-486a-a437-12b0bd779f59","html_url":"https://github.com/56kyle/pytest-static","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/56kyle/pytest-static","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56kyle%2Fpytest-static","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56kyle%2Fpytest-static/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56kyle%2Fpytest-static/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56kyle%2Fpytest-static/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/56kyle","download_url":"https://codeload.github.com/56kyle/pytest-static/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56kyle%2Fpytest-static/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265237696,"owners_count":23732514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pypi-package","pytest","pytest-fixtures","pytest-plugin","python"],"created_at":"2024-11-22T18:18:52.342Z","updated_at":"2025-07-14T03:31:13.482Z","avatar_url":"https://github.com/56kyle.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pytest-static\n\n[![PyPI](https://img.shields.io/pypi/v/pytest-static.svg)][pypi status]\n[![Status](https://img.shields.io/pypi/status/pytest-static.svg)][pypi status]\n[![Python Version](https://img.shields.io/pypi/pyversions/pytest-static)][pypi status]\n[![License](https://img.shields.io/pypi/l/pytest-static)][license]\n\n[![Read the documentation at https://pytest-static.readthedocs.io/](https://img.shields.io/readthedocs/pytest-static/latest.svg?label=Read%20the%20Docs)][read the docs]\n[![Tests](https://github.com/56kyle/pytest-static/workflows/Tests/badge.svg)][tests]\n[![Codecov](https://codecov.io/gh/56kyle/pytest-static/branch/main/graph/badge.svg)][codecov]\n\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)][pre-commit]\n[![Black](https://img.shields.io/badge/code%20style-black-000000.svg)][black]\n\n[pypi status]: https://pypi.org/project/pytest-static/\n[read the docs]: https://pytest-static.readthedocs.io/\n[tests]: https://github.com/56kyle/pytest-static/actions?workflow=Tests\n[codecov]: https://app.codecov.io/gh/56kyle/pytest-static\n[pre-commit]: https://github.com/pre-commit/pre-commit\n[black]: https://github.com/psf/black\n\n## Overview\n\npytest-static is a pytest plugin that allows you to parametrize your tests using type annotations.\n\nWhat this looks like in practice is that you can write a test like this:\n\n```python\nimport pytest\n\n\n@pytest.mark.parametrize_types(\"a\", [tuple[bool, bool]])\ndef test_a(a: bool) -\u003e None:\n    assert isinstance(a, bool)\n```\n\nWhich would be equivalent to the following test\n\n```python\nimport pytest\n\n\n@pytest.mark.parametrize(\"a\", [(True, True), (True, False), (False, True), (False, False)])\ndef test_a(a: int) -\u003e None:\n    assert isinstance(a, int)\n```\n\nFor types such as int, str, etc that have an unlimited amount of values, there are premade sets meant to cover common edge cases that are used by default\n\nThese premade sets can be modified or added to using the type_handlers.register decorator, or the type_handlers.clear function.\n\n## Features\n\n- TODO\n\n## Requirements\n\n- TODO\n\n## Installation\n\nYou can install _pytest-static_ via [pip] from [PyPI]:\n\n```console\n$ pip install pytest-static\n```\n\n## Usage\n\nPlease see the [Command-line Reference] for details.\n\n## Contributing\n\nContributions are very welcome.\nTo learn more, see the [Contributor Guide].\n\n## License\n\nDistributed under the terms of the [MIT license][license],\n_pytest-static_ is free and open source software.\n\n## Issues\n\nIf you encounter any problems,\nplease [file an issue] along with a detailed description.\n\n## Credits\n\nThis project was generated from [@cjolowicz]'s [Hypermodern Python Cookiecutter] template.\n\n[@cjolowicz]: https://github.com/cjolowicz\n[pypi]: https://pypi.org/\n[hypermodern python cookiecutter]: https://github.com/cjolowicz/cookiecutter-hypermodern-python\n[file an issue]: https://github.com/56kyle/pytest-static/issues\n[pip]: https://pip.pypa.io/\n\n\u003c!-- github-only --\u003e\n\n[license]: https://github.com/56kyle/pytest-static/blob/main/LICENSE\n[contributor guide]: https://github.com/56kyle/pytest-static/blob/main/CONTRIBUTING.md\n[command-line reference]: https://pytest-static.readthedocs.io/en/latest/usage.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F56kyle%2Fpytest-static","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F56kyle%2Fpytest-static","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F56kyle%2Fpytest-static/lists"}