Skip to content

Commit 43442bf

Browse files
committed
Test client context manager/closing
1 parent a9e6c70 commit 43442bf

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

tests/webservice_test.py

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import asyncio
22
import copy
33
import ipaddress
4+
from contextlib import ExitStack, AsyncExitStack
45
from typing import cast, Dict
56
import unittest
67
from pytest_httpserver import HeaderValueMatcher
@@ -333,22 +334,30 @@ def test_missing_constructor_args(self):
333334

334335
class TestClient(TestBaseClient):
335336
def setUp(self):
337+
self.stack = ExitStack()
336338
self.client_class = Client
337339
self.client = Client(42, "abcdef123456")
338340
self.client._base_uri = self.httpserver.url_for("/geoip/v2.1")
341+
self.stack.enter_context(self.client)
342+
343+
def tearDown(self):
344+
self.stack.close()
339345

340346
def run_client(self, v):
341347
return v
342348

343349

344350
class TestAsyncClient(TestBaseClient):
345351
def setUp(self):
352+
self.stack = AsyncExitStack()
346353
self._loop = asyncio.new_event_loop()
347354
self.client_class = AsyncClient
348355
self.client = AsyncClient(42, "abcdef123456")
349356
self.client._base_uri = self.httpserver.url_for("/geoip/v2.1")
357+
self._loop.run_until_complete(self.stack.enter_async_context(self.client))
350358

351359
def tearDown(self):
360+
self._loop.run_until_complete(self.stack.aclose())
352361
self._loop.run_until_complete(self.client.close())
353362
self._loop.close()
354363

0 commit comments

Comments
 (0)