1
1
"""Tests for acme.standalone."""
2
2
import os
3
3
import shutil
4
- import socket
5
4
import threading
6
5
import tempfile
7
6
import time
@@ -29,54 +28,6 @@ def test_bind(self): # pylint: disable=no-self-use
29
28
server .server_close () # pylint: disable=no-member
30
29
31
30
32
- class ACMEServerMixinTest (unittest .TestCase ):
33
- """Tests for acme.standalone.ACMEServerMixin."""
34
-
35
- def setUp (self ):
36
- from acme .standalone import ACMEServerMixin
37
-
38
- class _MockHandler (socketserver .BaseRequestHandler ):
39
- # pylint: disable=missing-docstring,no-member,no-init
40
-
41
- def handle (self ):
42
- self .request .sendall (b"DONE" )
43
-
44
- class _MockServer (socketserver .TCPServer , ACMEServerMixin ):
45
- def __init__ (self , * args , ** kwargs ):
46
- socketserver .TCPServer .__init__ (self , * args , ** kwargs )
47
- ACMEServerMixin .__init__ (self )
48
-
49
- self .server = _MockServer (("" , 0 ), _MockHandler )
50
-
51
- def _busy_wait (self ): # pragma: no cover
52
- # This function is used to avoid race conditions in tests, but
53
- # not all of the functionality is always used, hence "no
54
- # cover"
55
- while True :
56
- sock = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
57
- try :
58
- # pylint: disable=no-member
59
- sock .connect (self .server .socket .getsockname ())
60
- except socket .error :
61
- pass
62
- else :
63
- sock .recv (4 ) # wait until handle_request is actually called
64
- break
65
- finally :
66
- sock .close ()
67
- time .sleep (1 )
68
-
69
- def test_serve_shutdown (self ):
70
- thread = threading .Thread (target = self .server .serve_forever2 )
71
- thread .start ()
72
- self ._busy_wait ()
73
- self .server .shutdown2 ()
74
-
75
- def test_shutdown2_not_running (self ):
76
- self .server .shutdown2 ()
77
- self .server .shutdown2 ()
78
-
79
-
80
31
class DVSNIServerTest (unittest .TestCase ):
81
32
"""Test for acme.standalone.DVSNIServer."""
82
33
@@ -89,20 +40,16 @@ def setUp(self):
89
40
from acme .standalone import DVSNIServer
90
41
self .server = DVSNIServer (("" , 0 ), certs = self .certs )
91
42
# pylint: disable=no-member
92
- self .thread = threading .Thread (target = self .server .handle_request )
43
+ self .thread = threading .Thread (target = self .server .serve_forever )
93
44
self .thread .start ()
94
45
95
46
def tearDown (self ):
96
- self .server .shutdown2 ()
47
+ self .server .shutdown () # pylint: disable=no-member
97
48
self .thread .join ()
98
49
99
- def test_init (self ):
100
- # pylint: disable=protected-access
101
- self .assertFalse (self .server ._stopped )
102
-
103
- def test_dvsni (self ):
50
+ def test_it (self ):
104
51
host , port = self .server .socket .getsockname ()[:2 ]
105
- cert = crypto_util .probe_sni (b'localhost' , host = host , port = port )
52
+ cert = crypto_util .probe_sni (b'localhost' , host = host , port = port , timeout = 1 )
106
53
self .assertEqual (jose .ComparableX509 (cert ),
107
54
jose .ComparableX509 (self .certs [b'localhost' ][1 ]))
108
55
@@ -120,11 +67,11 @@ def setUp(self):
120
67
121
68
# pylint: disable=no-member
122
69
self .port = self .server .socket .getsockname ()[1 ]
123
- self .thread = threading .Thread (target = self .server .handle_request )
70
+ self .thread = threading .Thread (target = self .server .serve_forever )
124
71
self .thread .start ()
125
72
126
73
def tearDown (self ):
127
- self .server .shutdown2 ()
74
+ self .server .shutdown () # pylint: disable=no-member
128
75
self .thread .join ()
129
76
130
77
def test_index (self ):
0 commit comments