@@ -91,3 +91,39 @@ def test_set_message_fields_invalid():
9191 invalid_type ['int32_value' ] = 'this is not an integer'
9292 with pytest .raises (ValueError ):
9393 set_message_fields (msg , invalid_type )
94+
95+
96+ def test_set_nested_namespaced_fields ():
97+ unbounded_sequence_msg = message_fixtures .get_msg_unbounded_sequences ()[1 ]
98+ test_values = {
99+ 'basic_types_values' : [
100+ {'float64_value' : 42.42 , 'int8_value' : 42 },
101+ {'float64_value' : 11.11 , 'int8_value' : 11 }
102+ ]
103+ }
104+ set_message_fields (unbounded_sequence_msg , test_values )
105+ assert unbounded_sequence_msg .basic_types_values [0 ].float64_value == 42.42
106+ assert unbounded_sequence_msg .basic_types_values [0 ].int8_value == 42
107+ assert unbounded_sequence_msg .basic_types_values [0 ].uint8_value == 0
108+ assert unbounded_sequence_msg .basic_types_values [1 ].float64_value == 11.11
109+ assert unbounded_sequence_msg .basic_types_values [1 ].int8_value == 11
110+ assert unbounded_sequence_msg .basic_types_values [1 ].uint8_value == 0
111+
112+ arrays_msg = message_fixtures .get_msg_arrays ()[0 ]
113+ test_values = {
114+ 'basic_types_values' : [
115+ {'float64_value' : 42.42 , 'int8_value' : 42 },
116+ {'float64_value' : 11.11 , 'int8_value' : 11 },
117+ {'float64_value' : 22.22 , 'int8_value' : 22 },
118+ ]
119+ }
120+ set_message_fields (arrays_msg , test_values )
121+ assert arrays_msg .basic_types_values [0 ].float64_value == 42.42
122+ assert arrays_msg .basic_types_values [0 ].int8_value == 42
123+ assert arrays_msg .basic_types_values [0 ].uint8_value == 0
124+ assert arrays_msg .basic_types_values [1 ].float64_value == 11.11
125+ assert arrays_msg .basic_types_values [1 ].int8_value == 11
126+ assert arrays_msg .basic_types_values [1 ].uint8_value == 0
127+ assert arrays_msg .basic_types_values [2 ].float64_value == 22.22
128+ assert arrays_msg .basic_types_values [2 ].int8_value == 22
129+ assert arrays_msg .basic_types_values [2 ].uint8_value == 0
0 commit comments