From 48a51f914cacceeb6148520d5f713fe7c7b8d0a4 Mon Sep 17 00:00:00 2001 From: Leonardus Chen Date: Fri, 24 Oct 2025 11:07:59 +0700 Subject: [PATCH] Add more tests --- tests/typing/selector.py | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/tests/typing/selector.py b/tests/typing/selector.py index c923f39a..6297baf1 100644 --- a/tests/typing/selector.py +++ b/tests/typing/selector.py @@ -1,4 +1,4 @@ -from typing import Any +from typing import Any, Callable, Optional, Dict from dependency_injector import providers @@ -42,12 +42,34 @@ async def _async4() -> None: var2: Any = await provider4.async_() -# Test 5: to check explicit typing +# Test 5: to check selector getter and setter +provider5 = providers.Selector( + lambda: "a", + a=providers.Factory(object), + b=providers.Factory(object), +) +selector5: Optional[Callable[..., Any]] = provider5.selector +provider5_after_set_selector: providers.Selector[Any] = provider5.set_selector(lambda: "a") -provider5 = providers.Selector[bool](lambda: "a", a=providers.Factory(bool), b=providers.Factory(int)) -var5: bool = provider5() -attr5: providers.Provider[Any] = provider5.a -provider5_after_set_selector: providers.Selector[bool] = provider5.set_selector(lambda: "a") -provider5_after_set_providers: providers.Selector[bool] = provider5.set_providers( +# Test 6: to check providers getter and setter +provider6 = providers.Selector( + lambda: "a", + a=providers.Factory(object), + b=providers.Factory(object), +) +providers6: Dict[str, providers.Provider[Any]] = provider6.providers +provider6_after_set_providers: providers.Selector[Any] = provider6.set_providers(c=providers.Factory(object)) + + +# Test 7: to check explicit typing: return type, getattr, getter/setter of providers and selectors +provider7 = providers.Selector[bool](lambda: "a", a=providers.Factory(bool), b=providers.Factory(int)) +var7: bool = provider7() +attr7: providers.Provider[bool] = provider7.a + +selector7: Optional[Callable[..., Any]] = provider7.selector +provider7_after_set_selector: providers.Selector[bool] = provider7.set_selector(lambda: "a") + +providers7: Dict[str, providers.Provider[bool]] = provider7.providers +provider7_after_set_providers: providers.Selector[bool] = provider7.set_providers( c=providers.Factory(str) -) # We don't require Provider of subclass of bool yet since Provider is invariant \ No newline at end of file +) # We don't require Provider of subclass of bool yet since Provider is invariant