Skip to content

Commit ce3baea

Browse files
committed
🎨 Raise exception instead of hiding it in finally
1 parent be7abb3 commit ce3baea

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

Diff for: src/dependency_injector/providers.pyx

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

32233223
self._storage.instance = instance
3224-
finally:
3225-
return instance
3224+
3225+
return instance
32263226

32273227
def _async_init_instance(self, future_result, result):
32283228
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)