release: public alpha 0.6.0 baseline
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import importlib.util
|
||||
import json
|
||||
import socket
|
||||
import sys
|
||||
import tempfile
|
||||
import threading
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest import mock
|
||||
|
||||
|
||||
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
||||
MODULE_PATH = PROJECT_ROOT / "jwebot_edge_delivery.py"
|
||||
SPEC = importlib.util.spec_from_file_location("jwebot_edge_delivery", MODULE_PATH)
|
||||
MODULE = importlib.util.module_from_spec(SPEC)
|
||||
assert SPEC.loader is not None
|
||||
sys.modules[SPEC.name] = MODULE
|
||||
SPEC.loader.exec_module(MODULE)
|
||||
|
||||
|
||||
class DeliveryHelperTests(unittest.TestCase):
|
||||
def test_submit_gui_sender_uses_unix_socket_protocol(self):
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
socket_path = Path(temporary) / "gui.sock"
|
||||
received = {}
|
||||
|
||||
def server():
|
||||
with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as listener:
|
||||
listener.bind(str(socket_path))
|
||||
listener.listen(1)
|
||||
connection, _ = listener.accept()
|
||||
with connection:
|
||||
raw = connection.recv(4096).split(b"\n", 1)[0]
|
||||
received.update(json.loads(raw.decode("utf-8")))
|
||||
connection.sendall(b'{"ok":true,"state":"sent"}\n')
|
||||
|
||||
thread = threading.Thread(target=server, daemon=True)
|
||||
thread.start()
|
||||
for _ in range(200):
|
||||
if socket_path.exists():
|
||||
break
|
||||
MODULE.time.sleep(0.01)
|
||||
|
||||
with mock.patch.object(MODULE, "GUI_SENDER_SOCKET", socket_path):
|
||||
response = MODULE.submit_gui_sender(
|
||||
{
|
||||
"op": "send",
|
||||
"event_id": "event-1",
|
||||
"group_fingerprint": "group-a",
|
||||
"reply": "reply",
|
||||
"source": "delivery-helper",
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(response["state"], "sent")
|
||||
self.assertEqual(received["op"], "send")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user