Skip to content

Commit

Permalink
Require Python 3.9 for MappingProxyType subscription
Browse files Browse the repository at this point in the history
  • Loading branch information
Fatal1ty committed Apr 28, 2024
1 parent 5d6f5de commit 9f8f659
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 11 deletions.
10 changes: 7 additions & 3 deletions tests/test_data_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,6 @@ class Fixture:
(OrderedDict, Fixture.ORDERED_DICT, Fixture.DICT),
(DefaultDict[str, int], Fixture.DEFAULT_DICT, Fixture.DICT),
(DefaultDict, Fixture.DEFAULT_NONE_DICT, Fixture.DICT),
(MappingProxyType[str, int], Fixture.MAPPING_PROXY, Fixture.DICT),
(MappingProxyType, Fixture.MAPPING_PROXY, Fixture.DICT),
(Counter[str], Fixture.COUNTER, Fixture.DICT),
(Counter, Fixture.COUNTER, Fixture.DICT),
(MutableMapping[str, int], Fixture.DICT, Fixture.DICT),
Expand Down Expand Up @@ -338,7 +336,13 @@ class Fixture:
)

if PY_39_MIN:
inner_values.append((ZoneInfo, ZoneInfo("Europe/Moscow"), "Europe/Moscow"))
inner_values.extend(
(
(ZoneInfo, ZoneInfo("Europe/Moscow"), "Europe/Moscow"),
(MappingProxyType[str, int], Fixture.MAPPING_PROXY, Fixture.DICT),
(MappingProxyType, Fixture.MAPPING_PROXY, Fixture.DICT),
)
)


hashable_inner_values = [
Expand Down
24 changes: 16 additions & 8 deletions tests/test_meta.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@
import typing_extensions

from mashumaro import DataClassDictMixin
from mashumaro.core.const import PEP_585_COMPATIBLE, PY_38, PY_310_MIN
from mashumaro.core.const import (
PEP_585_COMPATIBLE,
PY_38,
PY_39_MIN,
PY_310_MIN,
)
from mashumaro.core.meta.code.builder import CodeBuilder

# noinspection PyProtectedMember
Expand Down Expand Up @@ -217,9 +222,6 @@ def test_type_name():
type_name(typing.DefaultDict[int, int])
== "typing.DefaultDict[int, int]"
)
assert (
type_name(types.MappingProxyType[int, int]) == "mappingproxy[int, int]"
)
assert type_name(typing.Optional[int]) == "typing.Optional[int]"
assert type_name(typing.Union[None, int]) == "typing.Optional[int]"
assert type_name(typing.Union[int, None]) == "typing.Optional[int]"
Expand All @@ -233,6 +235,11 @@ def test_type_name():
)
assert type_name(typing.Optional[NoneType]) == "NoneType"

if PY_39_MIN:
assert (
type_name(types.MappingProxyType[int, int])
== "mappingproxy[int, int]"
)
if PY_310_MIN:
assert type_name(int | None) == "typing.Optional[int]"
assert type_name(None | int) == "typing.Optional[int]"
Expand Down Expand Up @@ -312,10 +319,6 @@ def test_type_name_short():
type_name(typing.MutableMapping[int, int], short=True)
== "MutableMapping[int, int]"
)
assert (
type_name(types.MappingProxyType[int, int], short=True)
== "mappingproxy[int, int]"
)
assert type_name(typing.Counter[int], short=True) == "Counter[int]"
assert (
type_name(typing.ChainMap[int, int], short=True)
Expand Down Expand Up @@ -348,6 +351,11 @@ def test_type_name_short():
)
assert type_name(typing.Optional[NoneType], short=True) == "NoneType"

if PY_39_MIN:
assert (
type_name(types.MappingProxyType[int, int], short=True)
== "mappingproxy[int, int]"
)
if PY_310_MIN:
assert type_name(int | None, short=True) == "Optional[int]"
assert type_name(None | int, short=True) == "Optional[int]"
Expand Down

0 comments on commit 9f8f659

Please sign in to comment.