add a test for type hint is subclass
This commit is contained in:
parent
dd1ddd653f
commit
cec4e3c258
@ -2,7 +2,7 @@ import os
|
||||
import typing
|
||||
from functools import cached_property
|
||||
from pathlib import Path
|
||||
from typing import Any, ClassVar, List, Literal, Type, Union
|
||||
from typing import Any, ClassVar, Dict, List, Literal, Type, Union
|
||||
|
||||
import pytest
|
||||
import typer
|
||||
@ -77,6 +77,43 @@ def test_is_generic_alias(cls: type, expected: bool):
|
||||
assert types.is_generic_alias(cls) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("subclass", "superclass", "expected"),
|
||||
[
|
||||
*[
|
||||
(base_type, base_type, True)
|
||||
for base_type in [int, float, str, bool, list, dict]
|
||||
],
|
||||
*[
|
||||
(one_type, another_type, False)
|
||||
for one_type in [int, float, str, list, dict]
|
||||
for another_type in [int, float, str, list, dict]
|
||||
if one_type != another_type
|
||||
],
|
||||
(bool, int, True),
|
||||
(int, bool, False),
|
||||
(list, List, True),
|
||||
(list, List[str], True), # this is wrong, but it's a limitation of the function
|
||||
(List, list, True),
|
||||
(List[int], list, True),
|
||||
(List[int], List, True),
|
||||
(List[int], List[str], False),
|
||||
(List[int], List[int], True),
|
||||
(List[int], List[float], False),
|
||||
(List[int], List[Union[int, float]], True),
|
||||
(List[int], List[Union[float, str]], False),
|
||||
(Union[int, float], List[Union[int, float]], False),
|
||||
(Union[int, float], Union[int, float, str], True),
|
||||
(Union[int, float], Union[str, float], False),
|
||||
(Dict[str, int], Dict[str, int], True),
|
||||
(Dict[str, bool], Dict[str, int], True),
|
||||
(Dict[str, int], Dict[str, bool], False),
|
||||
],
|
||||
)
|
||||
def test_typehint_issubclass(subclass, superclass, expected):
|
||||
assert types.typehint_issubclass(subclass, superclass) == expected
|
||||
|
||||
|
||||
def test_validate_invalid_bun_path(mocker):
|
||||
"""Test that an error is thrown when a custom specified bun path is not valid
|
||||
or does not exist.
|
||||
|
Loading…
Reference in New Issue
Block a user