test: assert the reference client's reply address in e2e
This commit is contained in:
parent
aab98ff598
commit
a6b972fec9
1 changed files with 11 additions and 2 deletions
13
test/e2e.py
13
test/e2e.py
|
|
@ -95,6 +95,9 @@ def main() -> int:
|
||||||
check("bob reads the message", "hello bob" in bob_read, bob_read)
|
check("bob reads the message", "hello bob" in bob_read, bob_read)
|
||||||
check("bob sees alice's key", alice_pub in bob_read)
|
check("bob sees alice's key", alice_pub in bob_read)
|
||||||
check("signature verifies", "signature verified" in bob_read)
|
check("signature verifies", "signature verified" in bob_read)
|
||||||
|
# the reference client now emits its signed reply address by default
|
||||||
|
check("reference client emits the signed reply address",
|
||||||
|
"reply-to: smol://alice@" in bob_read, bob_read)
|
||||||
|
|
||||||
# --- JS client replies, through the bridge's WebSocket relay
|
# --- JS client replies, through the bridge's WebSocket relay
|
||||||
ws_env = dict(os.environ, GSMOL_TRANSPORT="ws", GSMOL_BRIDGE=f"ws://127.0.0.1:{bridge_port}")
|
ws_env = dict(os.environ, GSMOL_TRANSPORT="ws", GSMOL_BRIDGE=f"ws://127.0.0.1:{bridge_port}")
|
||||||
|
|
@ -117,9 +120,15 @@ def main() -> int:
|
||||||
new_key = re.search(r"new key: (\S+)", bob_rotated).group(1)
|
new_key = re.search(r"new key: (\S+)", bob_rotated).group(1)
|
||||||
resolved = run(alice + ["resolve", f"bob@{host}"])
|
resolved = run(alice + ["resolve", f"bob@{host}"])
|
||||||
check("chain confirms the rotation", "a signed chain confirms it" in resolved, resolved)
|
check("chain confirms the rotation", "a signed chain confirms it" in resolved, resolved)
|
||||||
run(alice + ["send", f"bob@{host}", "--subject", "post-rotation", "--body", "still here"])
|
run(alice + ["send", f"bob@{host}", "--subject", "post-rotation", "--body", "still here",
|
||||||
|
"--anonymous"])
|
||||||
print(run(bob + ["fetch"]).strip())
|
print(run(bob + ["fetch"]).strip())
|
||||||
check("bob reads mail addressed to the new key", "post-rotation" in run(bob + ["list"]))
|
bob_list = run(bob + ["list"])
|
||||||
|
check("bob reads mail addressed to the new key", "post-rotation" in bob_list)
|
||||||
|
# --anonymous omits the reply address; the field list must show none
|
||||||
|
post_read = run(bob + ["read", re.search(r"([0-9a-f]{8}) .*post-rotation",
|
||||||
|
bob_list).group(1)])
|
||||||
|
check("--anonymous omits the reply address", "reply-to:" not in post_read, post_read)
|
||||||
|
|
||||||
print(f"\n{len(failures)} failure(s)" + (f": {failures}" if failures else ""))
|
print(f"\n{len(failures)} failure(s)" + (f": {failures}" if failures else ""))
|
||||||
return 1 if failures else 0
|
return 1 if failures else 0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue