Test TypedDict support

This commit is contained in:
Adam J. Stewart 2023-05-13 16:31:57 -05:00
parent 6092c2455f
commit 3a7f1179fa
No known key found for this signature in database
GPG Key ID: C66C0675661156FC
1 changed files with 12 additions and 0 deletions

View File

@ -4,11 +4,13 @@ This file is not executed, it is only checked by mypy to ensure that
none of the code triggers any mypy errors.
"""
import contextlib
import sys
from typing import Optional
from typing_extensions import assert_type
import pytest
from _pytest.monkeypatch import MonkeyPatch
# Issue #7488.
@ -29,6 +31,16 @@ def check_parametrize_ids_callable(func) -> None:
pass
# Issue #10999.
@pytest.mark.skipif(sys.version_info < (3, 8), reason="TypedDict introduced in Python 3.8")
def check_monkeypatch_typeddict(monkeypatch: MonkeyPatch) -> None:
from typing import TypedDict
Foo = TypedDict("Foo", {"x": int, "y": float})
a: Foo = {"x": 1, "y": 3.14}
monkeypatch.setitem("x", 2)
monkeypatch.delitem("y")
def check_raises_is_a_context_manager(val: bool) -> None:
with pytest.raises(RuntimeError) if val else contextlib.nullcontext() as excinfo:
pass