example-code-2e/15-type-hints/randompop_test.py
2021-03-22 12:24:21 -03:00

25 lines
614 B
Python

from randompop import RandomPopper
import random
from typing import Any, Iterable, TYPE_CHECKING
class SimplePopper():
def __init__(self, items: Iterable) -> None:
self._items = list(items)
random.shuffle(self._items)
def pop_random(self) -> Any:
return self._items.pop()
def test_issubclass() -> None:
assert issubclass(SimplePopper, RandomPopper)
def test_isinstance() -> None:
popper: RandomPopper = SimplePopper([1])
if TYPE_CHECKING:
reveal_type(popper)
# Revealed type is 'randompop.RandomPopper'
assert isinstance(popper, RandomPopper)