Skip to content

Commit ed5d163

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

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

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,16 @@
1+
import pytest
2+
from dependency_injector.providers import ThreadLocalSingleton
3+
from dependency_injector.containers import Container
4+
5+
class FailingClass:
6+
def __init__(self):
7+
raise ValueError("FAILING CLASS")
8+
9+
class TestContainer(Container):
10+
failing_class = ThreadLocalSingleton(FailingClass)
11+
12+
def test_on_failure_value_error_is_raised():
13+
container = TestContainer()
14+
15+
with pytest.raises(ValueError, match="FAILING CLASS"):
16+
container.failing_class()

0 commit comments

Comments
 (0)