Skip to content

Commit 61dd2e3

Browse files
author
paskozdilar
committed
Add test for response cache
1 parent 886098e commit 61dd2e3

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

tests/test_rpc.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def run_server():
5454
class MockServer(Server):
5555
@rpc_method
5656
def mock_method(self):
57-
if not crash_event.wait(0):
57+
if not crash_event.is_set():
5858
crash_event.set()
5959
sys.exit(1)
6060
else:
@@ -63,7 +63,7 @@ def mock_method(self):
6363
MockServer(socket_dir=socket_dir).run()
6464

6565
def run_client():
66-
client = Client(socket_dir=socket_dir)
66+
client = Client(socket_dir=socket_dir, retry_timeout=0.1)
6767
response = client.call('mock_server', 'mock_method')
6868
if response['success']:
6969
rpc_event.set()
@@ -220,3 +220,28 @@ def mock_method(self):
220220
client = Client(socket_dir=socket_dir)
221221
response = client.call('mock_server', 'mock_method', timeout=3)
222222
assert response['success']
223+
224+
225+
def test_server_cache(socket_dir):
226+
227+
counter = multiprocessing.Value('i')
228+
counter.value = 0
229+
230+
class MockServer(Server):
231+
@rpc_method
232+
def mock_method(self):
233+
time.sleep(0.1)
234+
counter.value += 1
235+
return {'success': True}
236+
237+
def run_server():
238+
MockServer(socket_dir=socket_dir).run()
239+
240+
multiprocessing.Process(target=run_server, daemon=True).start()
241+
242+
# Retry 10 times
243+
client = Client(socket_dir=socket_dir, retry_timeout=0.01)
244+
client.call(server='mock_server', method='mock_method', timeout=1)
245+
246+
# Assert method executed only once
247+
assert counter.value == 1

0 commit comments

Comments
 (0)