fixes #3616: make sure there is always one time that we test the sock… (#4712)

This commit is contained in:
Schuyler Duveen 2017-06-06 13:11:33 -04:00 committed by Brad Warren
parent f0e1be55d6
commit 7531c98916

View file

@ -137,7 +137,6 @@ class TestSimpleTLSSNI01Server(unittest.TestCase):
)
self.old_cwd = os.getcwd()
os.chdir(self.test_cwd)
self.thread.start()
def tearDown(self):
os.chdir(self.old_cwd)
@ -146,13 +145,12 @@ class TestSimpleTLSSNI01Server(unittest.TestCase):
def test_it(self):
max_attempts = 5
while max_attempts:
max_attempts -= 1
for attempt in range(max_attempts):
try:
cert = crypto_util.probe_sni(
b'localhost', b'0.0.0.0', self.port)
except errors.Error:
self.assertTrue(max_attempts > 0, "Timeout!")
self.assertTrue(attempt + 1 < max_attempts, "Timeout!")
time.sleep(1) # wait until thread starts
else:
self.assertEqual(jose.ComparableX509(cert),
@ -160,6 +158,11 @@ class TestSimpleTLSSNI01Server(unittest.TestCase):
'rsa2048_cert.pem'))
break
if attempt == 0:
# the first attempt is always meant to fail, so we can test
# the socket failure code-path for probe_sni, as well
self.thread.start()
if __name__ == "__main__":
unittest.main() # pragma: no cover