Metadata-Version: 2.1
Name: pytest-typechecker
Version: 0.3.2
Summary: Run type checkers on specified test files
Home-page: https://github.com/vivax3794/pytest-typehints
License: MIT
Keywords: pytest,unittest,type hinting,pyright,mypy
Author: vivax
Author-email: vivax3794@protonmail.com
Requires-Python: >=3.6
Classifier: Environment :: Plugins
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Testing
Requires-Dist: mypy (>=0.931,<0.932)
Requires-Dist: pyright (>=0.0.13,<0.0.14)
Requires-Dist: pytest (>=6.2.5,<7.0.0)
Project-URL: Repository, https://github.com/vivax3794/pytest-typehints
Description-Content-Type: text/markdown

# pytest-typechecker

this is a plugin for pytest that allows you to create tests
that verify how a type checker responds to your code.

This currently supports these type checkers:

* pyright
* mypy

## File name format

this plugin looks for files starting with `test` and ending with `types.py` or `types_xfail.py`.
for example `test_something_types.py`

### global xfail

if you want to mark the hole test as `xfail` end it with `types_xfail.py`, for example.

```python
# test_wrong_types_xfail.py

x: 123 = "abc"
y: str = 123
```

### Only run specific checkers

if you include the name of a checker with `_` around it only those checkers will be run.
for example `test_recursion_pyright_types.py`

### xfail specific checkers

if you provide a `x` before the checker name, it will be run in xfail mode.
for example `test_recursion_xmypy_types.py` will run all checkers, but mark the mypy one as `xfail`

if you only want to run mypy and have it be xfail use this workaround: `test_recursion_mypy_types_xfail.py`

this can be combined, for example `test_recursion_pyright_xmypy_types.py` will run only pyright and mypy, but run mypy in xfail mode.

### dont run specific checkers
if you provide a `n` before the checker name, it will not be run.
for example `test_recursion_nmypy_types.py` will run all checkers, except mypy.
