Add nickname support to envelope protocol and update version to 0.1.1

This commit is contained in:
kc1awv
2025-12-30 09:43:18 -05:00
parent 3ad4010eae
commit f111cf545f
9 changed files with 126 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ from rrcd.constants import (
B_HELLO_NICK,
K_BODY,
K_ID,
K_NICK,
K_SRC,
K_T,
K_TS,
@@ -19,6 +20,26 @@ def test_validate_accepts_make_envelope() -> None:
validate_envelope(env)
def test_validate_accepts_optional_nick_extension() -> None:
env = make_envelope(T_HELLO, src=b"peer", body=None, nick="alice")
assert env[K_NICK] == "alice"
validate_envelope(env)
def test_validate_rejects_nick_too_long() -> None:
env = make_envelope(T_HELLO, src=b"peer", body=None)
env[K_NICK] = "a" * 33
with pytest.raises(ValueError):
validate_envelope(env)
def test_validate_rejects_nick_with_whitespace() -> None:
env = make_envelope(T_HELLO, src=b"peer", body=None)
env[K_NICK] = " alice "
with pytest.raises(ValueError):
validate_envelope(env)
def test_validate_rejects_missing_required_key() -> None:
env = make_envelope(T_HELLO, src=b"peer", body=None)
env.pop(K_TS)
@@ -67,3 +88,8 @@ def test_validate_rejects_wrong_field_types() -> None:
env[K_TS] = "not-int"
with pytest.raises(TypeError):
validate_envelope(env)
env = make_envelope(T_HELLO, src=b"peer", body=None)
env[K_NICK] = 123
with pytest.raises(TypeError):
validate_envelope(env)