aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/multidict/tests/test_abc.py
blob: 611d0fa8c35508100566db96aeeb634841d97f9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from collections.abc import Mapping, MutableMapping

from multidict import (
    MultiDict,
    MultiDictProxy,
    MultiMapping,
    MutableMultiMapping,
)


def test_abc_inheritance() -> None:
    assert issubclass(MultiMapping, Mapping)
    assert not issubclass(MultiMapping, MutableMapping)
    assert issubclass(MutableMultiMapping, Mapping)
    assert issubclass(MutableMultiMapping, MutableMapping)


def test_multidict_inheritance(any_multidict_class: type[MultiDict[str]]) -> None:
    assert issubclass(any_multidict_class, MultiMapping)
    assert issubclass(any_multidict_class, MutableMultiMapping)


def test_proxy_inheritance(
    any_multidict_proxy_class: type[MultiDictProxy[str]],
) -> None:
    assert issubclass(any_multidict_proxy_class, MultiMapping)
    assert not issubclass(any_multidict_proxy_class, MutableMultiMapping)


def test_generic_type_in_runtime() -> None:
    MultiMapping[str]
    MutableMultiMapping[str]