2 changed files with 37 additions and 6 deletions
@ -0,0 +1,25 @@ |
|||||
|
import gc |
||||
|
import weakref |
||||
|
|
||||
|
from fastapi.routing import _endpoint_context_cache, _extract_endpoint_context |
||||
|
|
||||
|
|
||||
|
def _make_endpoint(): |
||||
|
def endpoint(): |
||||
|
return None |
||||
|
|
||||
|
return endpoint |
||||
|
|
||||
|
|
||||
|
def test_endpoint_context_cache_releases_endpoints(): |
||||
|
endpoint = _make_endpoint() |
||||
|
_extract_endpoint_context(endpoint) |
||||
|
assert endpoint in _endpoint_context_cache |
||||
|
|
||||
|
ref = weakref.ref(endpoint) |
||||
|
size_with_endpoint = len(_endpoint_context_cache) |
||||
|
del endpoint |
||||
|
gc.collect() |
||||
|
|
||||
|
assert ref() is None |
||||
|
assert len(_endpoint_context_cache) <= size_with_endpoint - 1 |
||||
Loading…
Reference in new issue