@@ -1270,6 +1270,7 @@ async def test_tcp_connector_dns_cache_not_expired(loop, dns_response) -> None:
1270
1270
with mock .patch ("aiohttp.connector.DefaultResolver" ) as m_resolver :
1271
1271
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = True , ttl_dns_cache = 10 )
1272
1272
m_resolver ().resolve .return_value = dns_response ()
1273
+ m_resolver ().close = mock .AsyncMock ()
1273
1274
await conn ._resolve_host ("localhost" , 8080 )
1274
1275
await conn ._resolve_host ("localhost" , 8080 )
1275
1276
m_resolver ().resolve .assert_called_once_with ("localhost" , 8080 , family = 0 )
@@ -1281,6 +1282,7 @@ async def test_tcp_connector_dns_cache_forever(loop, dns_response) -> None:
1281
1282
with mock .patch ("aiohttp.connector.DefaultResolver" ) as m_resolver :
1282
1283
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = True , ttl_dns_cache = 10 )
1283
1284
m_resolver ().resolve .return_value = dns_response ()
1285
+ m_resolver ().close = mock .AsyncMock ()
1284
1286
await conn ._resolve_host ("localhost" , 8080 )
1285
1287
await conn ._resolve_host ("localhost" , 8080 )
1286
1288
m_resolver ().resolve .assert_called_once_with ("localhost" , 8080 , family = 0 )
@@ -1292,6 +1294,7 @@ async def test_tcp_connector_use_dns_cache_disabled(loop, dns_response) -> None:
1292
1294
with mock .patch ("aiohttp.connector.DefaultResolver" ) as m_resolver :
1293
1295
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = False )
1294
1296
m_resolver ().resolve .side_effect = [dns_response (), dns_response ()]
1297
+ m_resolver ().close = mock .AsyncMock ()
1295
1298
await conn ._resolve_host ("localhost" , 8080 )
1296
1299
await conn ._resolve_host ("localhost" , 8080 )
1297
1300
m_resolver ().resolve .assert_has_calls (
@@ -1308,6 +1311,7 @@ async def test_tcp_connector_dns_throttle_requests(loop, dns_response) -> None:
1308
1311
with mock .patch ("aiohttp.connector.DefaultResolver" ) as m_resolver :
1309
1312
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = True , ttl_dns_cache = 10 )
1310
1313
m_resolver ().resolve .return_value = dns_response ()
1314
+ m_resolver ().close = mock .AsyncMock ()
1311
1315
loop .create_task (conn ._resolve_host ("localhost" , 8080 ))
1312
1316
loop .create_task (conn ._resolve_host ("localhost" , 8080 ))
1313
1317
await asyncio .sleep (0 )
@@ -1322,6 +1326,7 @@ async def test_tcp_connector_dns_throttle_requests_exception_spread(loop) -> Non
1322
1326
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = True , ttl_dns_cache = 10 )
1323
1327
e = Exception ()
1324
1328
m_resolver ().resolve .side_effect = e
1329
+ m_resolver ().close = mock .AsyncMock ()
1325
1330
r1 = loop .create_task (conn ._resolve_host ("localhost" , 8080 ))
1326
1331
r2 = loop .create_task (conn ._resolve_host ("localhost" , 8080 ))
1327
1332
await asyncio .sleep (0 )
@@ -1341,6 +1346,7 @@ async def test_tcp_connector_dns_throttle_requests_cancelled_when_close(
1341
1346
with mock .patch ("aiohttp.connector.DefaultResolver" ) as m_resolver :
1342
1347
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = True , ttl_dns_cache = 10 )
1343
1348
m_resolver ().resolve .return_value = dns_response ()
1349
+ m_resolver ().close = mock .AsyncMock ()
1344
1350
loop .create_task (conn ._resolve_host ("localhost" , 8080 ))
1345
1351
f = loop .create_task (conn ._resolve_host ("localhost" , 8080 ))
1346
1352
@@ -1384,6 +1390,7 @@ def exception_handler(loop, context):
1384
1390
use_dns_cache = False ,
1385
1391
)
1386
1392
m_resolver ().resolve .return_value = dns_response_error ()
1393
+ m_resolver ().close = mock .AsyncMock ()
1387
1394
f = loop .create_task (conn ._create_direct_connection (req , [], ClientTimeout (0 )))
1388
1395
1389
1396
await asyncio .sleep (0 )
@@ -1419,6 +1426,7 @@ async def test_tcp_connector_dns_tracing(loop, dns_response) -> None:
1419
1426
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = True , ttl_dns_cache = 10 )
1420
1427
1421
1428
m_resolver ().resolve .return_value = dns_response ()
1429
+ m_resolver ().close = mock .AsyncMock ()
1422
1430
1423
1431
await conn ._resolve_host ("localhost" , 8080 , traces = traces )
1424
1432
on_dns_resolvehost_start .assert_called_once_with (
@@ -1460,6 +1468,7 @@ async def test_tcp_connector_dns_tracing_cache_disabled(loop, dns_response) -> N
1460
1468
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = False )
1461
1469
1462
1470
m_resolver ().resolve .side_effect = [dns_response (), dns_response ()]
1471
+ m_resolver ().close = mock .AsyncMock ()
1463
1472
1464
1473
await conn ._resolve_host ("localhost" , 8080 , traces = traces )
1465
1474
@@ -1514,6 +1523,7 @@ async def test_tcp_connector_dns_tracing_throttle_requests(loop, dns_response) -
1514
1523
with mock .patch ("aiohttp.connector.DefaultResolver" ) as m_resolver :
1515
1524
conn = aiohttp .TCPConnector (loop = loop , use_dns_cache = True , ttl_dns_cache = 10 )
1516
1525
m_resolver ().resolve .return_value = dns_response ()
1526
+ m_resolver ().close = mock .AsyncMock ()
1517
1527
loop .create_task (conn ._resolve_host ("localhost" , 8080 , traces = traces ))
1518
1528
loop .create_task (conn ._resolve_host ("localhost" , 8080 , traces = traces ))
1519
1529
await asyncio .sleep (0 )
@@ -1528,6 +1538,14 @@ async def test_tcp_connector_dns_tracing_throttle_requests(loop, dns_response) -
1528
1538
await conn .close ()
1529
1539
1530
1540
1541
+ async def test_tcp_connector_close_resolver () -> None :
1542
+ m_resolver = mock .AsyncMock ()
1543
+ with mock .patch ("aiohttp.connector.DefaultResolver" , return_value = m_resolver ):
1544
+ conn = aiohttp .TCPConnector (use_dns_cache = True , ttl_dns_cache = 10 )
1545
+ await conn .close ()
1546
+ m_resolver .close .assert_awaited_once ()
1547
+
1548
+
1531
1549
async def test_dns_error (loop ) -> None :
1532
1550
connector = aiohttp .TCPConnector (loop = loop )
1533
1551
connector ._resolve_host = mock .AsyncMock (
@@ -3691,6 +3709,7 @@ async def resolve_response() -> List[ResolveResult]:
3691
3709
3692
3710
with mock .patch ("aiohttp.connector.DefaultResolver" ) as m_resolver :
3693
3711
m_resolver ().resolve .return_value = resolve_response ()
3712
+ m_resolver ().close = mock .AsyncMock ()
3694
3713
3695
3714
connector = TCPConnector ()
3696
3715
traces = [DummyTracer ()]
0 commit comments