Skip to content

Commit ebbefdb

Browse files
committed
Signed-off-by: Stavros Ntentos <[email protected]>
1 parent 054aa53 commit ebbefdb

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

docs/source/quality.rst

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,45 @@ This is an example of a parametrized test with ``pytest-mypy-plugins``:
156156
main: |
157157
reveal_type({[ val }}) # N: Revealed type is '{{ rt }}'
158158
159+
pytest-mypy-testing
160+
-------------------
161+
162+
`pytest-mypy-testing <https://github.com/davidfritzsche/pytest-mypy-testing>`_ is another
163+
plugin for ``pytest``. The main difference between :ref:`pytest-mypy-plugins` is that
164+
:ref:`pytest-mypy-testing` allows writing tests inside Python code and/or
165+
mixed with actual tests.
166+
167+
.. warning::
168+
169+
pytest-mypy-testing uses the Python
170+
`ast<https://docs.python.org/3/library/ast.html>`_ module to parse
171+
candidate files and does not import any file, i.e., the decorator must be
172+
exactly named ``@pytest.mark.mypy_testing``!
173+
174+
175+
These are examples of testing with ``pytest-mypy-testing``:
176+
177+
.. code-block:: python
178+
179+
@pytest.mark.mypy_testing
180+
def mypy_use_reveal_type():
181+
reveal_type(123) # N: Revealed type is 'Literal[123]?'
182+
reveal_type(456) # R: Literal[456]?
183+
184+
.. code-block:: python
185+
186+
def foo(num: int) -> str:
187+
return str(num)
188+
189+
190+
@pytest.mark.mypy_testing
191+
def test_foo():
192+
result = foo(1)
193+
reveal_type(result) # R: builtins.str
194+
195+
assert result == "1"
196+
197+
159198
Improving Type Completeness
160199
===========================
161200

0 commit comments

Comments
 (0)