@@ -11,40 +11,24 @@ class TestResponseTypeValues:
1111 Reference: github.com/canonical/go-dqlite internal/protocol/constants.go
1212 """
1313
14- def test_failure_is_0 (self ) -> None :
15- assert ResponseType .FAILURE == 0
16-
17- def test_node_is_1 (self ) -> None :
18- assert ResponseType .LEADER == 1
19-
20- def test_welcome_is_2 (self ) -> None :
21- assert ResponseType .WELCOME == 2
22-
23- def test_nodes_is_3 (self ) -> None :
24- """Go: ResponseNodes = 3 (cluster server listing)."""
25- assert ResponseType .SERVERS == 3
26-
27- def test_db_is_4 (self ) -> None :
28- assert ResponseType .DB == 4
29-
30- def test_stmt_is_5 (self ) -> None :
31- assert ResponseType .STMT == 5
32-
33- def test_result_is_6 (self ) -> None :
34- assert ResponseType .RESULT == 6
35-
36- def test_rows_is_7 (self ) -> None :
37- assert ResponseType .ROWS == 7
38-
39- def test_empty_is_8 (self ) -> None :
40- assert ResponseType .EMPTY == 8
41-
42- def test_files_is_9 (self ) -> None :
43- assert ResponseType .FILES == 9
44-
45- def test_metadata_is_10 (self ) -> None :
46- """Go: ResponseMetadata = 10."""
47- assert ResponseType .METADATA == 10
14+ @pytest .mark .parametrize (
15+ ("name" , "value" ),
16+ [
17+ ("FAILURE" , 0 ),
18+ ("LEADER" , 1 ),
19+ ("WELCOME" , 2 ),
20+ ("SERVERS" , 3 ), # Go: ResponseNodes = 3 (cluster server listing)
21+ ("DB" , 4 ),
22+ ("STMT" , 5 ),
23+ ("RESULT" , 6 ),
24+ ("ROWS" , 7 ),
25+ ("EMPTY" , 8 ),
26+ ("FILES" , 9 ),
27+ ("METADATA" , 10 ), # Go: ResponseMetadata = 10
28+ ],
29+ )
30+ def test_response_type_value (self , name : str , value : int ) -> None :
31+ assert getattr (ResponseType , name ) == value
4832
4933 def test_no_node_legacy_as_separate_type (self ) -> None :
5034 """NODE_LEGACY should not exist as a separate type code.
@@ -57,64 +41,34 @@ def test_no_node_legacy_as_separate_type(self) -> None:
5741class TestRequestTypeValues :
5842 """Verify RequestType enum matches go-dqlite constants.go."""
5943
60- def test_leader_is_0 (self ) -> None :
61- assert RequestType .LEADER == 0
62-
63- def test_client_is_1 (self ) -> None :
64- assert RequestType .CLIENT == 1
65-
66- def test_open_is_3 (self ) -> None :
67- assert RequestType .OPEN == 3
68-
69- def test_prepare_is_4 (self ) -> None :
70- assert RequestType .PREPARE == 4
71-
72- def test_exec_is_5 (self ) -> None :
73- assert RequestType .EXEC == 5
74-
75- def test_query_is_6 (self ) -> None :
76- assert RequestType .QUERY == 6
77-
78- def test_finalize_is_7 (self ) -> None :
79- assert RequestType .FINALIZE == 7
80-
81- def test_exec_sql_is_8 (self ) -> None :
82- assert RequestType .EXEC_SQL == 8
83-
84- def test_query_sql_is_9 (self ) -> None :
85- assert RequestType .QUERY_SQL == 9
86-
87- def test_interrupt_is_10 (self ) -> None :
88- assert RequestType .INTERRUPT == 10
89-
90- def test_add_is_12 (self ) -> None :
91- assert RequestType .ADD == 12
92-
93- def test_assign_is_13 (self ) -> None :
94- assert RequestType .ASSIGN == 13
95-
96- def test_remove_is_14 (self ) -> None :
97- assert RequestType .REMOVE == 14
98-
99- def test_dump_is_15 (self ) -> None :
100- assert RequestType .DUMP == 15
101-
102- def test_cluster_is_16 (self ) -> None :
103- assert RequestType .CLUSTER == 16
104-
105- def test_transfer_is_17 (self ) -> None :
106- assert RequestType .TRANSFER == 17
107-
108- def test_describe_is_18 (self ) -> None :
109- assert RequestType .DESCRIBE == 18
110-
111- def test_weight_is_19 (self ) -> None :
112- assert RequestType .WEIGHT == 19
113-
114- def test_connect_is_11 (self ) -> None :
115- """C defines DQLITE_REQUEST_CONNECT = 11 for Raft transport; the Go client omits
116- it (client-only), but a complete implementation includes it."""
117- assert RequestType .CONNECT == 11
44+ @pytest .mark .parametrize (
45+ ("name" , "value" ),
46+ [
47+ ("LEADER" , 0 ),
48+ ("CLIENT" , 1 ),
49+ ("OPEN" , 3 ),
50+ ("PREPARE" , 4 ),
51+ ("EXEC" , 5 ),
52+ ("QUERY" , 6 ),
53+ ("FINALIZE" , 7 ),
54+ ("EXEC_SQL" , 8 ),
55+ ("QUERY_SQL" , 9 ),
56+ ("INTERRUPT" , 10 ),
57+ # C defines DQLITE_REQUEST_CONNECT = 11 for Raft transport; the Go
58+ # client omits it (client-only), but a complete implementation includes it.
59+ ("CONNECT" , 11 ),
60+ ("ADD" , 12 ),
61+ ("ASSIGN" , 13 ),
62+ ("REMOVE" , 14 ),
63+ ("DUMP" , 15 ),
64+ ("CLUSTER" , 16 ),
65+ ("TRANSFER" , 17 ),
66+ ("DESCRIBE" , 18 ),
67+ ("WEIGHT" , 19 ),
68+ ],
69+ )
70+ def test_request_type_value (self , name : str , value : int ) -> None :
71+ assert getattr (RequestType , name ) == value
11872
11973
12074class TestPublicExports :
0 commit comments