Code Duplication    Length = 16-17 lines in 2 locations

tests/experimental/test_async_context_based_executions.py 2 locations

@@ 153-169 (lines=17) @@
150
        assert context_container.resolve(Thing).contents == "managed thing"
151
152
153
@pytest.mark.asyncio
154
async def test_it_works_with_actual_context_managers_as_singletons():
155
    fresh_container = Container(container)
156
157
    class ThingManager:
158
        def __enter__(self):
159
            return Thing("managed thing")
160
161
        def __exit__(self, exc_type, exc_val, exc_tb):
162
            pass
163
164
    fresh_container[ContextManager[Thing]] = ThingManager  # type: ignore
165
166
    async with AsyncContextContainer(
167
        fresh_container, context_types=[], context_singletons=[Thing]
168
    ) as context_container:
169
        assert context_container.resolve(Thing).contents == "managed thing"
170
171
172
@pytest.mark.asyncio
@@ 134-149 (lines=16) @@
131
    )
132
133
134
@pytest.mark.asyncio
135
async def test_it_works_with_actual_context_managers():
136
    fresh_container = Container(container)
137
138
    class ThingManager:
139
        def __enter__(self):
140
            return Thing("managed thing")
141
142
        def __exit__(self, exc_type, exc_val, exc_tb):
143
            pass
144
145
    fresh_container[ContextManager[Thing]] = ThingManager  # type: ignore
146
147
    async with AsyncContextContainer(
148
        fresh_container, context_types=[Thing]
149
    ) as context_container:
150
        assert context_container.resolve(Thing).contents == "managed thing"
151
152