Skip to content

Commit 510fb82

Browse files
committed
varlink: rework server_factory fixture to take a service
Construct `ServiceRequestHandler` once and re-use it in the fixture.
1 parent f299cf8 commit 510fb82

File tree

4 files changed

+13
-21
lines changed

4 files changed

+13
-21
lines changed

varlink/tests/conftest.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@
55
import varlink
66

77

8+
class ServiceRequestHandler(varlink.RequestHandler): ...
9+
10+
811
@pytest.fixture
912
def server_factory():
1013
servers = []
1114

12-
def _create_server(address: str, request_handler: varlink.RequestHandler):
13-
server = varlink.ThreadingServer(address, request_handler)
15+
def _create_server(address: str, service: varlink.Service):
16+
ServiceRequestHandler.service = service
17+
server = varlink.ThreadingServer(address, ServiceRequestHandler)
1418
ready_event = threading.Event()
1519

1620
def run_server() -> None:

varlink/tests/test_basic_network.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616
)
1717

1818

19-
class ServiceRequestHandler(varlink.RequestHandler):
20-
service = service
21-
22-
2319
test_addresses = [
2420
("tcp:127.0.0.1:23450", False, ""),
2521
(
@@ -40,7 +36,7 @@ def test_address(server_factory, address, skip, skip_reason) -> None:
4036
if skip:
4137
pytest.skip(skip_reason)
4238

43-
server_factory(address, ServiceRequestHandler)
39+
server_factory(address, service)
4440

4541
with varlink.Client(address) as client, client.open("org.varlink.service") as connection:
4642
info = connection.GetInfo()
@@ -57,7 +53,7 @@ def test_address(server_factory, address, skip, skip_reason) -> None:
5753

5854
def test_reuse_open(server_factory) -> None:
5955
address = "tcp:127.0.0.1:23450"
60-
server_factory(address, ServiceRequestHandler)
56+
server_factory(address, service)
6157

6258
with varlink.Client(address) as client:
6359
connection = client.open_connection()
@@ -73,4 +69,4 @@ def test_reuse_open(server_factory) -> None:
7369
def test_wrong_url(server_factory) -> None:
7470
address = f"uenix:org.varlink.service_wrong_url_test_{os.getpid()}"
7571
with pytest.raises(ConnectionError):
76-
server_factory(address, ServiceRequestHandler)
72+
server_factory(address, service)

varlink/tests/test_orgexamplemore.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,6 @@ def run_client(client):
7575
)
7676

7777

78-
class ServiceRequestHandler(varlink.RequestHandler):
79-
service = service
80-
81-
8278
class ActionFailed(varlink.VarlinkError):
8379
def __init__(self, reason):
8480
varlink.VarlinkError.__init__(
@@ -138,7 +134,7 @@ def TestObject(self, object):
138134

139135

140136
def run_server(address):
141-
with varlink.ThreadingServer(address, ServiceRequestHandler) as server:
137+
with varlink.ThreadingServer(address, service) as server:
142138
print("Listening on", server.server_address)
143139
try:
144140
server.serve_forever()
@@ -216,7 +212,7 @@ def epilog():
216212
def test_service(server_factory) -> None:
217213
address = "tcp:127.0.0.1:23451"
218214
Example.sleep_duration = 0.1
219-
server_factory(address, ServiceRequestHandler)
215+
server_factory(address, service)
220216

221217
client = varlink.Client.new_with_address(address)
222218

varlink/tests/test_server_encoding.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ def default(self, obj):
4949
)
5050

5151

52-
class ServiceRequestHandler(varlink.RequestHandler):
53-
service = service
54-
55-
5652
@service.interface("org.example.encoding")
5753
class EncodingExample:
5854
sleep_duration = 1
@@ -83,7 +79,7 @@ def GetOrder(self, num):
8379

8480
def test_ping(server_factory):
8581
address = "tcp:127.0.0.1:23451"
86-
server_factory(address, ServiceRequestHandler)
82+
server_factory(address, service)
8783
client = varlink.Client.new_with_address(address)
8884
with client.open("org.example.encoding") as conn:
8985
response = conn.Ping("Foo")
@@ -92,7 +88,7 @@ def test_ping(server_factory):
9288

9389
def test_get_order(server_factory):
9490
address = "tcp:127.0.0.1:23451"
95-
server_factory(address, ServiceRequestHandler)
91+
server_factory(address, service)
9692

9793
client = varlink.Client.new_with_address(address)
9894
with client.open("org.example.encoding") as conn:

0 commit comments

Comments
 (0)