Minecraft-Friends-AI-ZeroGPU / tests /test_relay_diagnostics.py
naldo
Add Gemini CLI Flash Lite companion bot and server stability telemetry
7e83939
Raw History Blame Contribute Delete
2.43 kB
import datetime
from minecraft_stack import _access_state, _relay_diagnostics
def test_session_and_join_counters():
lines = [
'[2026-09-27 16:00:00] friends> time=now level=INFO msg="xbox live session created" sessionID=private',
'[2026-09-27 16:00:01] friends> time=now level=INFO msg="session is live - should now be visible on the friends tab" sessionID=private',
'[2026-09-27 16:01:00] friends> time=now level=INFO msg="player authenticated via xbox live" xuid=private',
'[2026-09-27 16:01:01] friends> time=now level=ERROR msg="failed to dial backend" err="connection refused"',
]
result = _relay_diagnostics(lines)
assert result['session_live']
assert result['last_live_at'] == '2026-09-27 16:00:01'
assert result['join_attempts'] == 1
assert result['backend_joins'] == 0
assert result['backend_failures'] == 1
assert result['last_error_category'] == 'connection_refused'
assert 'private' not in str(result)
def test_session_ended_and_recovered():
lines = [
'[2026-09-27 16:00:00] friends> level=INFO msg="session is live - should now be visible on the friends tab"',
'[2026-09-27 16:02:00] friends> level=ERROR msg="session ended, restarting" err="403: owner isn\'t active"',
]
result = _relay_diagnostics(lines)
assert not result['session_live']
assert result['session_failures'] == 1
assert result['last_error_category'] == 'owner_inactive'
lines.append('[2026-09-27 16:04:00] friends> level=INFO msg="session is live - should now be visible on the friends tab"')
assert _relay_diagnostics(lines)['session_live']
def test_access_grace_and_degraded_state():
now = datetime.datetime(2026, 9, 27, 16, 30, 0)
live = {"session_live": True, "last_session_event_at": "2026-09-27 16:15:00"}
ended = {"session_live": False, "last_session_event_at": "2026-09-27 16:29:00"}
assert _access_state("starting", None, ended, now) == "starting"
assert _access_state("running", None, live, now) == "ready"
assert _access_state("running", None, ended, now) == "recovering"
ended["last_session_event_at"] = "2026-09-27 16:25:00"
assert _access_state("running", None, ended, now) == "degraded"
if __name__ == '__main__':
test_session_and_join_counters()
test_session_ended_and_recovered()
test_access_grace_and_degraded_state()
print('PASS relay diagnostics')