Skip to content

Commit 9e67f28

Browse files
test: add RowsResponse full codec round-trip test
RowsResponse was the only response type without a round-trip test through encode_message()/decode_message(). All other response types had codec-level tests in TestRoundTrip. This fills the gap for the most complex response type. Closes #131 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d1f89b8 commit 9e67f28

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

tests/test_codec.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,27 @@ def test_failure_response_unicode(self) -> None:
643643
assert isinstance(decoded, FailureResponse)
644644
assert decoded.message == "Error: \u00e9\u00e8\u00e0"
645645

646+
def test_rows_response(self) -> None:
647+
"""131: RowsResponse through full codec round-trip."""
648+
from dqlitewire.constants import ValueType
649+
from dqlitewire.messages.responses import RowsResponse
650+
651+
original = RowsResponse(
652+
column_names=["id", "name"],
653+
column_types=[ValueType.INTEGER, ValueType.TEXT],
654+
row_types=[
655+
[ValueType.INTEGER, ValueType.TEXT],
656+
[ValueType.INTEGER, ValueType.TEXT],
657+
],
658+
rows=[[1, "alice"], [2, "bob"]],
659+
)
660+
encoded = encode_message(original)
661+
decoded = decode_message(encoded, is_request=False)
662+
assert isinstance(decoded, RowsResponse)
663+
assert decoded.column_names == ["id", "name"]
664+
assert decoded.rows == [[1, "alice"], [2, "bob"]]
665+
assert decoded.has_more is False
666+
646667
def test_prepare_request_schema_survives_roundtrip(self) -> None:
647668
"""PrepareRequest with schema=1 must preserve schema through codec round-trip."""
648669
original = PrepareRequest(db_id=1, sql="SELECT 1", schema=1)

0 commit comments

Comments
 (0)