Skip to content

Commit 061c6fe

Browse files
committed
Merge branch 'release/1.1.1'
2 parents e628ddc + 9fd22db commit 061c6fe

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "taskiq-dependencies"
3-
version = "1.1.0"
3+
version = "1.1.1"
44
description = "FastAPI like dependency injection implementation"
55
authors = ["Pavel Kirilin <win10@list.ru>"]
66
readme = "README.md"

taskiq_dependencies/graph.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,13 @@ def _build_graph(self) -> None: # noqa: C901, WPS210
123123

124124
# We check, that default value is an instance of
125125
# TaskiqDepends.
126-
if not isinstance(param.default, Dependency):
126+
if not isinstance(default_value, Dependency):
127127
continue
128128

129129
# If user haven't set the dependency,
130130
# using TaskiqDepends constructor,
131131
# we need to find variable's type hint.
132-
if param.default.dependency is None:
132+
if default_value.dependency is None:
133133
if hints.get(param_name) is None:
134134
# In this case, we don't know anything
135135
# about this dependency. And it cannot be resolved.
@@ -150,14 +150,14 @@ def _build_graph(self) -> None: # noqa: C901, WPS210
150150
else:
151151
# We can get dependency by simply using
152152
# user supplied function.
153-
dependency_func = param.default.dependency
153+
dependency_func = default_value.dependency
154154

155155
# Now we construct new TaskiqDepends instance
156156
# with correct dependency function and cache.
157157
dep_obj = Dependency(
158158
dependency_func,
159-
use_cache=param.default.use_cache,
160-
kwargs=param.default.kwargs,
159+
use_cache=default_value.use_cache,
160+
kwargs=default_value.kwargs,
161161
)
162162
# Also we set the parameter name,
163163
# it will help us in future when

tests/test_fastapi.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from typing import Any
2+
from unittest.mock import patch
3+
4+
from taskiq_dependencies import DependencyGraph
5+
6+
7+
class MyFastapiDepends:
8+
def __init__(self, dependency: Any, use_cache: bool = False) -> None:
9+
self.dependency = dependency
10+
self.use_cache = use_cache
11+
12+
13+
def test_dependency_swap() -> None:
14+
"""
15+
Test that dependency classes are swapped.
16+
17+
This test checks that if function depends on FastAPI depends, it will
18+
be swapped and resolved.
19+
"""
20+
with patch("taskiq_dependencies.graph.FastapiDepends", MyFastapiDepends):
21+
22+
def func_a() -> int:
23+
return 1
24+
25+
def func_b(dep_a: int = MyFastapiDepends(func_a)) -> int: # type: ignore
26+
return dep_a
27+
28+
with DependencyGraph(func_b).sync_ctx() as ctx:
29+
kwargs = ctx.resolve_kwargs()
30+
31+
assert kwargs == {"dep_a": 1}

0 commit comments

Comments
 (0)