File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -95,7 +95,9 @@ def _exit(self) -> None:
9595 self .registry .providers [self .info .interface ] = self .prev
9696
9797 if self .prev_cache is not None :
98+ new_cache = self .container .root .cache
9899 self .container .root .cache = self .prev_cache
100+ self .container .root .cache .update (new_cache )
99101
100102 def _clear_provider (
101103 self , providers : list [ProviderRecord [object ]] | None
Original file line number Diff line number Diff line change @@ -92,3 +92,22 @@ class B:
9292 b_scoped = await ctx .resolve (B )
9393 assert b_scoped is not b
9494 assert b .a is a
95+
96+
97+ async def test_should_not_remove_unrelated_objects_from_cache () -> None :
98+ class A :
99+ pass
100+
101+ class B :
102+ pass
103+
104+ container = Container ()
105+ container .register (Singleton (A ), Singleton (B ))
106+ testcontainer = TestContainer (container )
107+
108+ async with testcontainer .override (Singleton (B )):
109+ a = await container .root .resolve (A )
110+ b = await container .root .resolve (B )
111+
112+ assert await container .root .resolve (A ) is a
113+ assert await container .root .resolve (B ) is not b
You can’t perform that action at this time.
0 commit comments