Skip to content

Commit f9db578

Browse files
authored
🎨 Raise exception instead of hiding it in finally (#845)
1 parent d82d9fb commit f9db578

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/dependency_injector/providers.pyx

+2-2
Original file line numberDiff line numberDiff line change
@@ -3222,8 +3222,8 @@ cdef class ThreadLocalSingleton(BaseSingleton):
32223222
return future_result
32233223

32243224
self._storage.instance = instance
3225-
finally:
3226-
return instance
3225+
3226+
return instance
32273227

32283228
def _async_init_instance(self, future_result, result):
32293229
try:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import pytest
2+
3+
from dependency_injector.containers import Container
4+
from dependency_injector.providers import ThreadLocalSingleton
5+
6+
7+
class FailingClass:
8+
def __init__(self):
9+
raise ValueError("FAILING CLASS")
10+
11+
12+
class TestContainer(Container):
13+
failing_class = ThreadLocalSingleton(FailingClass)
14+
15+
16+
def test_on_failure_value_error_is_raised():
17+
container = TestContainer()
18+
19+
with pytest.raises(ValueError, match="FAILING CLASS"):
20+
container.failing_class()

0 commit comments

Comments
 (0)