From 5d31afb146e4f14608616876eb6f08e39cca6a19 Mon Sep 17 00:00:00 2001 From: Joongi Kim Date: Tue, 25 Jun 2024 22:29:00 +0900 Subject: [PATCH] Let's check gc --- aiodocker/docker.py | 7 ++++++- tests/conftest.py | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/aiodocker/docker.py b/aiodocker/docker.py index a00df681..62a04767 100644 --- a/aiodocker/docker.py +++ b/aiodocker/docker.py @@ -86,6 +86,7 @@ def __init__( ssl_context: Optional[ssl.SSLContext] = None, api_version: str = "auto", ) -> None: + self._init = False docker_host = url # rename if docker_host is None: docker_host = os.environ.get("DOCKER_HOST", None) @@ -166,6 +167,7 @@ def __init__( # legacy aliases self.pull = self.images.pull self.push = self.images.push + self._init = True async def __aenter__(self) -> "Docker": return self @@ -181,7 +183,10 @@ async def __aexit__( async def close(self) -> None: await self.events.stop() await self.session.close() - await self.connector.close() + + def __del__(self) -> None: + if self._init and not self.session.closed: + raise RuntimeError("A Docker instance must be explicitly closed") async def auth(self, **credentials: Any) -> Dict[str, Any]: response = await self._query_json("auth", "POST", data=credentials) diff --git a/tests/conftest.py b/tests/conftest.py index d434f237..fae4db6e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,6 @@ from __future__ import annotations +import asyncio import os import sys import traceback @@ -95,6 +96,7 @@ async def docker(testing_images): raise RuntimeError(f"Cannot find docker API version for {version}") docker = Docker(**kwargs) + print(asyncio.get_running_loop()) try: yield docker finally: