aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/tests/test_lease_enforcement.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/tests/test_lease_enforcement.py')
-rw-r--r--packages/meshbay-node/tests/test_lease_enforcement.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/packages/meshbay-node/tests/test_lease_enforcement.py b/packages/meshbay-node/tests/test_lease_enforcement.py
index 2b1014b..7b636ac 100644
--- a/packages/meshbay-node/tests/test_lease_enforcement.py
+++ b/packages/meshbay-node/tests/test_lease_enforcement.py
@@ -273,3 +273,36 @@ async def test_the_sweeper_does_not_reclaim_a_transfer_that_is_moving(group):
await _request(peer, _ids(group)[0], tr="t1")
assert slots.leases["t1"].used is True
await asyncio.sleep(0)
+
+
+# ── the line the node logs when a transfer ends ─────────────────────────────
+
+async def test_a_served_chunk_is_counted_on_its_lease(group):
+ peer = _Session(group)
+ group["_peers"]["s1"] = peer
+ peer._do_transfer_open({"tr": "t1", "kind": DOWNLOAD, "bytes": 2_000_000})
+ await _request(peer, _ids(group)[0], tr="t1")
+ await _request(peer, _ids(group)[0], tr="invented")
+
+ lease = peer._slots().leases["t1"]
+ assert lease.moved == len(peer.chunks()[0]["ct"])
+ line = peer._transfer_end_line(lease, "done")
+ assert line.startswith("transfer: end download t1 done 1.0 MB"), line
+
+
+async def test_a_closed_transfer_is_logged_once(group):
+ peer = _Session(group)
+ group["_peers"]["s1"] = peer
+ lines: list[str] = []
+ end_line = peer._transfer_end_line
+ peer._transfer_end_line = (
+ lambda lease, reason: lines.append(end_line(lease, reason)) or lines[-1])
+
+ peer._do_transfer_open({"tr": "t1", "kind": DOWNLOAD, "bytes": 2_000_000})
+ peer._do_transfer_open({"tr": "t2", "kind": DOWNLOAD, "bytes": 2_000_000})
+ peer._do_transfer_close({"tr": "t1", "reason": "cancelled"})
+ peer._release_transfers()
+ peer._release_transfers()
+
+ assert [x.split()[3:5] for x in lines] == [
+ ["t1", "cancelled"], ["t2", "session_gone"]], lines