39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import random
|
|
from typing import Iterable, TYPE_CHECKING, List
|
|
|
|
from erp import EnterpriserRandomPopper
|
|
import randompop
|
|
|
|
|
|
def test_issubclass() -> None:
|
|
assert issubclass(EnterpriserRandomPopper, randompop.RandomPopper)
|
|
|
|
|
|
|
|
def test_isinstance_untyped_items_argument() -> None:
|
|
items = [1, 2, 3]
|
|
popper = EnterpriserRandomPopper(items) # [int] is not required
|
|
if TYPE_CHECKING:
|
|
reveal_type(popper)
|
|
# Revealed type is 'erp.EnterpriserRandomPopper[builtins.int*]'
|
|
assert isinstance(popper, randompop.RandomPopper)
|
|
|
|
|
|
def test_isinstance_untyped_items_in_var_type() -> None:
|
|
items = [1, 2, 3]
|
|
popper: EnterpriserRandomPopper = EnterpriserRandomPopper[int](items)
|
|
if TYPE_CHECKING:
|
|
reveal_type(popper)
|
|
# Revealed type is 'erp.EnterpriserRandomPopper[Any]'
|
|
assert isinstance(popper, randompop.RandomPopper)
|
|
|
|
|
|
def test_isinstance_item() -> None:
|
|
items = [1, 2, 3]
|
|
popper = EnterpriserRandomPopper[int](items) # [int] is not required
|
|
popped = popper.pop_random()
|
|
if TYPE_CHECKING:
|
|
reveal_type(popped)
|
|
# Revealed type is 'builtins.int*'
|
|
assert isinstance(popped, int)
|