@@ -232,13 +232,12 @@ def request_handler(listener):
232
232
233
233
self ._start_server (request_handler )
234
234
proxy_url = "socks5://%s:%s" % (self .host , self .port )
235
- pm = socks .SOCKSProxyManager (proxy_url )
236
- self .addCleanup (pm .clear )
237
- response = pm .request ("GET" , "http://16.17.18.19" )
235
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
236
+ response = pm .request ("GET" , "http://16.17.18.19" )
238
237
239
- assert response .status == 200
240
- assert response .data == b""
241
- assert response .headers ["Server" ] == "SocksTestServer"
238
+ assert response .status == 200
239
+ assert response .data == b""
240
+ assert response .headers ["Server" ] == "SocksTestServer"
242
241
243
242
def test_local_dns (self ):
244
243
def request_handler (listener ):
@@ -266,13 +265,12 @@ def request_handler(listener):
266
265
267
266
self ._start_server (request_handler )
268
267
proxy_url = "socks5://%s:%s" % (self .host , self .port )
269
- pm = socks .SOCKSProxyManager (proxy_url )
270
- self .addCleanup (pm .clear )
271
- response = pm .request ("GET" , "http://localhost" )
268
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
269
+ response = pm .request ("GET" , "http://localhost" )
272
270
273
- assert response .status == 200
274
- assert response .data == b""
275
- assert response .headers ["Server" ] == "SocksTestServer"
271
+ assert response .status == 200
272
+ assert response .data == b""
273
+ assert response .headers ["Server" ] == "SocksTestServer"
276
274
277
275
def test_correct_header_line (self ):
278
276
def request_handler (listener ):
@@ -304,10 +302,9 @@ def request_handler(listener):
304
302
305
303
self ._start_server (request_handler )
306
304
proxy_url = "socks5h://%s:%s" % (self .host , self .port )
307
- pm = socks .SOCKSProxyManager (proxy_url )
308
- self .addCleanup (pm .clear )
309
- response = pm .request ("GET" , "http://example.com" )
310
- assert response .status == 200
305
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
306
+ response = pm .request ("GET" , "http://example.com" )
307
+ assert response .status == 200
311
308
312
309
def test_connection_timeouts (self ):
313
310
event = threading .Event ()
@@ -317,12 +314,10 @@ def request_handler(listener):
317
314
318
315
self ._start_server (request_handler )
319
316
proxy_url = "socks5h://%s:%s" % (self .host , self .port )
320
- pm = socks .SOCKSProxyManager (proxy_url )
321
- self .addCleanup (pm .clear )
322
-
323
- with pytest .raises (ConnectTimeoutError ):
324
- pm .request ("GET" , "http://example.com" , timeout = 0.001 , retries = False )
325
- event .set ()
317
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
318
+ with pytest .raises (ConnectTimeoutError ):
319
+ pm .request ("GET" , "http://example.com" , timeout = 0.001 , retries = False )
320
+ event .set ()
326
321
327
322
def test_connection_failure (self ):
328
323
event = threading .Event ()
@@ -333,12 +328,10 @@ def request_handler(listener):
333
328
334
329
self ._start_server (request_handler )
335
330
proxy_url = "socks5h://%s:%s" % (self .host , self .port )
336
- pm = socks .SOCKSProxyManager (proxy_url )
337
- self .addCleanup (pm .clear )
338
-
339
- event .wait ()
340
- with pytest .raises (NewConnectionError ):
341
- pm .request ("GET" , "http://example.com" , retries = False )
331
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
332
+ event .wait ()
333
+ with pytest .raises (NewConnectionError ):
334
+ pm .request ("GET" , "http://example.com" , retries = False )
342
335
343
336
def test_proxy_rejection (self ):
344
337
evt = threading .Event ()
@@ -355,12 +348,10 @@ def request_handler(listener):
355
348
356
349
self ._start_server (request_handler )
357
350
proxy_url = "socks5h://%s:%s" % (self .host , self .port )
358
- pm = socks .SOCKSProxyManager (proxy_url )
359
- self .addCleanup (pm .clear )
360
-
361
- with pytest .raises (NewConnectionError ):
362
- pm .request ("GET" , "http://example.com" , retries = False )
363
- evt .set ()
351
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
352
+ with pytest .raises (NewConnectionError ):
353
+ pm .request ("GET" , "http://example.com" , retries = False )
354
+ evt .set ()
364
355
365
356
def test_socks_with_password (self ):
366
357
def request_handler (listener ):
@@ -390,14 +381,12 @@ def request_handler(listener):
390
381
391
382
self ._start_server (request_handler )
392
383
proxy_url = "socks5://%s:%s" % (self .host , self .port )
393
- pm = socks .SOCKSProxyManager (proxy_url , username = "user" , password = "pass" )
394
- self .addCleanup (pm .clear )
395
-
396
- response = pm .request ("GET" , "http://16.17.18.19" )
384
+ with socks .SOCKSProxyManager (proxy_url , username = "user" , password = "pass" ) as pm :
385
+ response = pm .request ("GET" , "http://16.17.18.19" )
397
386
398
- assert response .status == 200
399
- assert response .data == b""
400
- assert response .headers ["Server" ] == "SocksTestServer"
387
+ assert response .status == 200
388
+ assert response .data == b""
389
+ assert response .headers ["Server" ] == "SocksTestServer"
401
390
402
391
def test_socks_with_auth_in_url (self ):
403
392
"""
@@ -432,14 +421,12 @@ def request_handler(listener):
432
421
433
422
self ._start_server (request_handler )
434
423
proxy_url = "socks5://user:pass@%s:%s" % (self .host , self .port )
435
- pm = socks .SOCKSProxyManager (proxy_url )
436
- self . addCleanup ( pm . clear )
424
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
425
+ response = pm . request ( "GET" , "http://16.17.18.19" )
437
426
438
- response = pm .request ("GET" , "http://16.17.18.19" )
439
-
440
- assert response .status == 200
441
- assert response .data == b""
442
- assert response .headers ["Server" ] == "SocksTestServer"
427
+ assert response .status == 200
428
+ assert response .data == b""
429
+ assert response .headers ["Server" ] == "SocksTestServer"
443
430
444
431
def test_socks_with_invalid_password (self ):
445
432
def request_handler (listener ):
@@ -452,15 +439,15 @@ def request_handler(listener):
452
439
453
440
self ._start_server (request_handler )
454
441
proxy_url = "socks5h://%s:%s" % (self .host , self .port )
455
- pm = socks .SOCKSProxyManager (proxy_url , username = "user" , password = "badpass" )
456
- self . addCleanup ( pm . clear )
457
-
458
- try :
459
- pm .request ("GET" , "http://example.com" , retries = False )
460
- except NewConnectionError as e :
461
- assert "SOCKS5 authentication failed" in str (e )
462
- else :
463
- self .fail ("Did not raise" )
442
+ with socks .SOCKSProxyManager (
443
+ proxy_url , username = "user" , password = "badpass"
444
+ ) as pm :
445
+ try :
446
+ pm .request ("GET" , "http://example.com" , retries = False )
447
+ except NewConnectionError as e :
448
+ assert "SOCKS5 authentication failed" in str (e )
449
+ else :
450
+ self .fail ("Did not raise" )
464
451
465
452
def test_source_address_works (self ):
466
453
expected_port = _get_free_port (self .host )
@@ -492,12 +479,11 @@ def request_handler(listener):
492
479
493
480
self ._start_server (request_handler )
494
481
proxy_url = "socks5://%s:%s" % (self .host , self .port )
495
- pm = socks .SOCKSProxyManager (
482
+ with socks .SOCKSProxyManager (
496
483
proxy_url , source_address = ("127.0.0.1" , expected_port )
497
- )
498
- self .addCleanup (pm .clear )
499
- response = pm .request ("GET" , "http://16.17.18.19" )
500
- assert response .status == 200
484
+ ) as pm :
485
+ response = pm .request ("GET" , "http://16.17.18.19" )
486
+ assert response .status == 200
501
487
502
488
503
489
class TestSOCKS4Proxy (IPV4SocketDummyServerTestCase ):
@@ -534,13 +520,12 @@ def request_handler(listener):
534
520
535
521
self ._start_server (request_handler )
536
522
proxy_url = "socks4://%s:%s" % (self .host , self .port )
537
- pm = socks .SOCKSProxyManager (proxy_url )
538
- self .addCleanup (pm .clear )
539
- response = pm .request ("GET" , "http://16.17.18.19" )
523
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
524
+ response = pm .request ("GET" , "http://16.17.18.19" )
540
525
541
- assert response .status == 200
542
- assert response .headers ["Server" ] == "SocksTestServer"
543
- assert response .data == b""
526
+ assert response .status == 200
527
+ assert response .headers ["Server" ] == "SocksTestServer"
528
+ assert response .data == b""
544
529
545
530
def test_local_dns (self ):
546
531
def request_handler (listener ):
@@ -568,13 +553,12 @@ def request_handler(listener):
568
553
569
554
self ._start_server (request_handler )
570
555
proxy_url = "socks4://%s:%s" % (self .host , self .port )
571
- pm = socks .SOCKSProxyManager (proxy_url )
572
- self .addCleanup (pm .clear )
573
- response = pm .request ("GET" , "http://localhost" )
556
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
557
+ response = pm .request ("GET" , "http://localhost" )
574
558
575
- assert response .status == 200
576
- assert response .headers ["Server" ] == "SocksTestServer"
577
- assert response .data == b""
559
+ assert response .status == 200
560
+ assert response .headers ["Server" ] == "SocksTestServer"
561
+ assert response .data == b""
578
562
579
563
def test_correct_header_line (self ):
580
564
def request_handler (listener ):
@@ -606,10 +590,9 @@ def request_handler(listener):
606
590
607
591
self ._start_server (request_handler )
608
592
proxy_url = "socks4a://%s:%s" % (self .host , self .port )
609
- pm = socks .SOCKSProxyManager (proxy_url )
610
- self .addCleanup (pm .clear )
611
- response = pm .request ("GET" , "http://example.com" )
612
- assert response .status == 200
593
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
594
+ response = pm .request ("GET" , "http://example.com" )
595
+ assert response .status == 200
613
596
614
597
def test_proxy_rejection (self ):
615
598
evt = threading .Event ()
@@ -626,12 +609,10 @@ def request_handler(listener):
626
609
627
610
self ._start_server (request_handler )
628
611
proxy_url = "socks4a://%s:%s" % (self .host , self .port )
629
- pm = socks .SOCKSProxyManager (proxy_url )
630
- self .addCleanup (pm .clear )
631
-
632
- with pytest .raises (NewConnectionError ):
633
- pm .request ("GET" , "http://example.com" , retries = False )
634
- evt .set ()
612
+ with socks .SOCKSProxyManager (proxy_url ) as pm :
613
+ with pytest .raises (NewConnectionError ):
614
+ pm .request ("GET" , "http://example.com" , retries = False )
615
+ evt .set ()
635
616
636
617
def test_socks4_with_username (self ):
637
618
def request_handler (listener ):
@@ -659,13 +640,12 @@ def request_handler(listener):
659
640
660
641
self ._start_server (request_handler )
661
642
proxy_url = "socks4://%s:%s" % (self .host , self .port )
662
- pm = socks .SOCKSProxyManager (proxy_url , username = "user" )
663
- self .addCleanup (pm .clear )
664
- response = pm .request ("GET" , "http://16.17.18.19" )
643
+ with socks .SOCKSProxyManager (proxy_url , username = "user" ) as pm :
644
+ response = pm .request ("GET" , "http://16.17.18.19" )
665
645
666
- assert response .status == 200
667
- assert response .data == b""
668
- assert response .headers ["Server" ] == "SocksTestServer"
646
+ assert response .status == 200
647
+ assert response .data == b""
648
+ assert response .headers ["Server" ] == "SocksTestServer"
669
649
670
650
def test_socks_with_invalid_username (self ):
671
651
def request_handler (listener ):
@@ -676,15 +656,13 @@ def request_handler(listener):
676
656
677
657
self ._start_server (request_handler )
678
658
proxy_url = "socks4a://%s:%s" % (self .host , self .port )
679
- pm = socks .SOCKSProxyManager (proxy_url , username = "baduser" )
680
- self .addCleanup (pm .clear )
681
-
682
- try :
683
- pm .request ("GET" , "http://example.com" , retries = False )
684
- except NewConnectionError as e :
685
- assert "different user-ids" in str (e )
686
- else :
687
- self .fail ("Did not raise" )
659
+ with socks .SOCKSProxyManager (proxy_url , username = "baduser" ) as pm :
660
+ try :
661
+ pm .request ("GET" , "http://example.com" , retries = False )
662
+ except NewConnectionError as e :
663
+ assert "different user-ids" in str (e )
664
+ else :
665
+ self .fail ("Did not raise" )
688
666
689
667
690
668
class TestSOCKSWithTLS (IPV4SocketDummyServerTestCase ):
@@ -728,10 +706,9 @@ def request_handler(listener):
728
706
729
707
self ._start_server (request_handler )
730
708
proxy_url = "socks5h://%s:%s" % (self .host , self .port )
731
- pm = socks .SOCKSProxyManager (proxy_url , ca_certs = DEFAULT_CA )
732
- self .addCleanup (pm .clear )
733
- response = pm .request ("GET" , "https://localhost" )
709
+ with socks .SOCKSProxyManager (proxy_url , ca_certs = DEFAULT_CA ) as pm :
710
+ response = pm .request ("GET" , "https://localhost" )
734
711
735
- assert response .status == 200
736
- assert response .data == b""
737
- assert response .headers ["Server" ] == "SocksTestServer"
712
+ assert response .status == 200
713
+ assert response .data == b""
714
+ assert response .headers ["Server" ] == "SocksTestServer"
0 commit comments