diff options
author | Michał Górny <mgorny@gentoo.org> | 2020-08-26 15:26:33 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2020-08-26 20:57:30 +0200 |
commit | 0ce6088801ce600abc0d25f0603560b8a7113071 (patch) | |
tree | 499fdb8ec45bd42350b5a09f6f3d249c28d57085 /tests/testutil.py | |
parent | c02c24661520510739e34dcce64ee3e5904a4635 (diff) | |
download | gemato-0ce6088801ce600abc0d25f0603560b8a7113071.tar.gz |
tests: Rewrite test_openpgp in pure pytest
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'tests/testutil.py')
-rw-r--r-- | tests/testutil.py | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/tests/testutil.py b/tests/testutil.py index 45d1cd6..c00ef75 100644 --- a/tests/testutil.py +++ b/tests/testutil.py @@ -3,6 +3,7 @@ # (c) 2017-2020 Michał Górny # Licensed under the terms of 2-clause BSD license +import collections import errno import functools import io @@ -15,6 +16,8 @@ import tempfile import threading import unittest +import pytest + from http.server import HTTPServer, BaseHTTPRequestHandler from urllib.parse import urlparse, parse_qs @@ -85,35 +88,31 @@ class HKPServerRequestHandler(BaseHTTPRequestHandler): self.wfile.flush() -class HKPServerTestCase(unittest.TestCase): - """ - A test case deploying HKP server for OpenPGP client to use. - """ - - SERVER_KEYS = {} - - def setUp(self): - # try 10 randomly selected ports before giving up - for port in random.sample(range(1024, 32768), 10): - try: - self.server = HTTPServer(('127.0.0.1', port), - functools.partial(HKPServerRequestHandler, - self.SERVER_KEYS)) - except OSError as e: - if e.errno != errno.EADDRINUSE: - raise unittest.SkipTest('Unable to bind the HKP server: {}' - .format(e)) - else: - break +@pytest.fixture +def hkp_server(): + keys = {} + # try 10 randomly selected ports before giving up + for port in random.sample(range(1024, 32768), 10): + try: + server = HTTPServer( + ('127.0.0.1', port), + functools.partial(HKPServerRequestHandler, keys)) + except OSError as e: + if e.errno != errno.EADDRINUSE: + raise unittest.SkipTest('Unable to bind the HKP server: {}' + .format(e)) else: - raise unittest.SkipTest('Unable to find a free port for HKP server') + break + else: + pytest.skip('Unable to find a free port for HKP server') - self.server_addr = 'hkp://127.0.0.1:{}'.format(port) - self.server_thread = threading.Thread( - target=self.server.serve_forever) - self.server_thread.start() + server_addr = f'hkp://127.0.0.1:{port}' + server_thread = threading.Thread(target=server.serve_forever) + server_thread.start() - def tearDown(self): - self.server.shutdown() - self.server.server_close() - self.server_thread.join() + yield collections.namedtuple('HKPServerTuple', ('addr', 'keys'))( + server_addr, keys) + + server.shutdown() + server.server_close() + server_thread.join() |