From 2d0258db1a054b281e2fff40727338fec2a676ea Mon Sep 17 00:00:00 2001 From: Peter Law Date: Sat, 20 Jun 2020 13:51:25 +0100 Subject: [PATCH] Add tests for class-style decorator factories --- .../pep0484_generic_passthroughs.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/test/completion/pep0484_generic_passthroughs.py b/test/completion/pep0484_generic_passthroughs.py index 748a96d2..31a289c5 100644 --- a/test/completion/pep0484_generic_passthroughs.py +++ b/test/completion/pep0484_generic_passthroughs.py @@ -230,6 +230,46 @@ is_decorated(the_para ) +class class_decorator_factory_plain: + def __call__(self, func: T) -> T: + ... + +#? class_decorator_factory_plain() +class_decorator_factory_plain() + +#? +class_decorator_factory_plain()() + +is_decorated_by_class_decorator_factory = class_decorator_factory_plain()(will_be_decorated) + +#? will_be_decorated +is_decorated_by_class_decorator_factory + +#? ['the_param='] +is_decorated_by_class_decorator_factory(the_par +) + + +class class_decorator_factory_bound_callable: + def __call__(self, func: TCallable) -> TCallable: + ... + +#? class_decorator_factory_bound_callable() +class_decorator_factory_bound_callable() + +#? Callable() +class_decorator_factory_bound_callable()() + +is_decorated_by_class_bound_factory = class_decorator_factory_bound_callable()(will_be_decorated) + +#? will_be_decorated +is_decorated_by_class_bound_factory + +#? ['the_param='] +is_decorated_by_class_bound_factory(the_par +) + + class That(Generic[T]): def __init__(self, items: List[Tuple[str, T]]) -> None: pass