Skip to content

Commit fcec207

Browse files
update tests
Signed-off-by: Mikael Arguedas <[email protected]>
1 parent 6f45d46 commit fcec207

File tree

1 file changed

+92
-46
lines changed

1 file changed

+92
-46
lines changed

rosidl_generator_py/test/test_interfaces.py

Lines changed: 92 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -260,57 +260,103 @@ def test_out_of_range():
260260

261261

262262
def test_slot_attributes():
263+
from rosidl_parser.definition import Array
264+
from rosidl_parser.definition import BoundedSequence
265+
from rosidl_parser.definition import NamespacedType
266+
from rosidl_parser.definition import UnboundedSequence
263267
a = Nested()
264-
assert hasattr(a, 'get_fields_and_field_types')
268+
assert hasattr(a, 'SLOT_TYPES')
269+
assert hasattr(a, 'get_slot_types')
265270
assert hasattr(a, '__slots__')
266-
nested_slot_types_dict = getattr(a, 'get_fields_and_field_types')()
271+
nested_slot_types_dict = getattr(a, 'get_slot_types')()
272+
nested_slot_types = Nested.SLOT_TYPES
267273
nested_slots = getattr(a, '__slots__')
268274
assert len(nested_slot_types_dict) == len(nested_slots)
269-
expected_nested_slot_types_dict = {
270-
'primitives': 'rosidl_generator_py/Primitives',
271-
'two_primitives': 'rosidl_generator_py/Primitives[2]',
272-
'up_to_three_primitives': 'sequence<rosidl_generator_py/Primitives, 3>',
273-
'unbounded_primitives': 'sequence<rosidl_generator_py/Primitives>',
274-
}
275-
assert len(nested_slot_types_dict) == len(expected_nested_slot_types_dict)
276-
277-
for expected_field, expected_slot_type in expected_nested_slot_types_dict.items():
278-
assert expected_field in nested_slot_types_dict.keys()
279-
assert expected_slot_type == nested_slot_types_dict[expected_field]
280-
281-
282-
def test_primative_slot_attributes():
275+
assert len(nested_slot_types) == len(nested_slots)
276+
expected_keys = [
277+
'primitives',
278+
'two_primitives',
279+
'up_to_three_primitives',
280+
'unbounded_primitives',
281+
]
282+
assert len(nested_slot_types_dict.keys()) == len(expected_keys)
283+
for e_key in expected_keys:
284+
assert e_key in nested_slot_types_dict.keys()
285+
assert isinstance(nested_slot_types_dict['primitives'], NamespacedType)
286+
assert nested_slot_types_dict['primitives'].namespaces == ['rosidl_generator_py', 'msg']
287+
assert nested_slot_types_dict['primitives'].name == 'Primitives'
288+
289+
assert isinstance(nested_slot_types_dict['two_primitives'], Array)
290+
assert isinstance(nested_slot_types_dict['two_primitives'].basetype, NamespacedType)
291+
assert nested_slot_types_dict['two_primitives'].basetype.namespaces == \
292+
['rosidl_generator_py', 'msg']
293+
assert nested_slot_types_dict['two_primitives'].basetype.name == 'Primitives'
294+
295+
assert isinstance(nested_slot_types_dict['up_to_three_primitives'], BoundedSequence)
296+
assert isinstance(nested_slot_types_dict['up_to_three_primitives'].basetype, NamespacedType)
297+
assert nested_slot_types_dict['up_to_three_primitives'].basetype.namespaces == \
298+
['rosidl_generator_py', 'msg']
299+
assert nested_slot_types_dict['up_to_three_primitives'].basetype.name == 'Primitives'
300+
301+
assert isinstance(nested_slot_types_dict['unbounded_primitives'], UnboundedSequence)
302+
assert isinstance(nested_slot_types_dict['unbounded_primitives'].basetype, NamespacedType)
303+
assert nested_slot_types_dict['unbounded_primitives'].basetype.namespaces == \
304+
['rosidl_generator_py', 'msg']
305+
assert nested_slot_types_dict['unbounded_primitives'].basetype.name == 'Primitives'
306+
307+
308+
def test_string_slot_attributes():
309+
from rosidl_parser.definition import Array
310+
from rosidl_parser.definition import BoundedSequence
311+
from rosidl_parser.definition import String
312+
from rosidl_parser.definition import UnboundedSequence
283313
b = StringArrays()
284-
assert hasattr(b, 'get_fields_and_field_types')
314+
assert hasattr(b, 'SLOT_TYPES')
315+
assert hasattr(b, 'get_slot_types')
285316
assert hasattr(b, '__slots__')
286-
string_slot_types_dict = getattr(b, 'get_fields_and_field_types')()
317+
string_slot_types_dict = getattr(b, 'get_slot_types')()
318+
string_slot_types = StringArrays.SLOT_TYPES
287319
string_slots = getattr(b, '__slots__')
288320
assert len(string_slot_types_dict) == len(string_slots)
289-
expected_string_slot_types_dict = {
290-
'ub_string_static_array_value': 'string<5>[3]',
291-
'ub_string_ub_array_value': 'sequence<string<5>, 10>',
292-
'ub_string_dynamic_array_value': 'sequence<string<5>>',
293-
'string_dynamic_array_value': 'sequence<string>',
294-
'string_static_array_value': 'string[3]',
295-
'string_bounded_array_value': 'sequence<string, 10>',
296-
'def_string_dynamic_array_value': 'sequence<string>',
297-
'def_string_static_array_value': 'string[3]',
298-
'def_string_bounded_array_value': 'sequence<string, 10>',
299-
'def_various_quotes': 'sequence<string>',
300-
'def_various_commas': 'sequence<string>',
301-
}
302-
303-
assert len(string_slot_types_dict) == len(expected_string_slot_types_dict)
304-
305-
for expected_field, expected_slot_type in expected_string_slot_types_dict.items():
306-
assert expected_field in string_slot_types_dict.keys()
307-
assert expected_slot_type == string_slot_types_dict[expected_field]
308-
309-
310-
def test_modifying_slot_fields_and_types():
311-
b = StringArrays()
312-
assert hasattr(b, 'get_fields_and_field_types')
313-
string_slot_types_dict = getattr(b, 'get_fields_and_field_types')()
314-
string_slot_types_dict_len = len(string_slot_types_dict)
315-
string_slot_types_dict[1] = 2
316-
assert len(getattr(b, 'get_fields_and_field_types')()) == string_slot_types_dict_len
321+
assert len(string_slot_types) == len(string_slots)
322+
323+
expected_keys = [
324+
'ub_string_static_array_value',
325+
'ub_string_ub_array_value',
326+
'ub_string_dynamic_array_value',
327+
'string_dynamic_array_value',
328+
'string_static_array_value',
329+
'string_bounded_array_value',
330+
'def_string_dynamic_array_value',
331+
'def_string_static_array_value',
332+
'def_string_bounded_array_value',
333+
'def_various_quotes',
334+
'def_various_commas',
335+
]
336+
337+
assert len(string_slot_types_dict.keys()) == len(expected_keys)
338+
for e_key in expected_keys:
339+
assert e_key in string_slot_types_dict.keys()
340+
341+
assert isinstance(string_slot_types_dict['ub_string_static_array_value'], Array)
342+
assert isinstance(string_slot_types_dict['ub_string_static_array_value'].basetype, String)
343+
assert string_slot_types_dict['ub_string_static_array_value'].size == 3
344+
assert string_slot_types_dict['ub_string_static_array_value'].basetype.maximum_size == '5'
345+
346+
assert isinstance(string_slot_types_dict['ub_string_ub_array_value'], BoundedSequence)
347+
assert isinstance(string_slot_types_dict['ub_string_ub_array_value'].basetype, String)
348+
assert string_slot_types_dict['ub_string_ub_array_value'].upper_bound == 10
349+
assert string_slot_types_dict['ub_string_ub_array_value'].basetype.maximum_size == '5'
350+
351+
assert isinstance(string_slot_types_dict['ub_string_dynamic_array_value'], UnboundedSequence)
352+
assert isinstance(string_slot_types_dict['ub_string_dynamic_array_value'].basetype, String)
353+
assert string_slot_types_dict['ub_string_dynamic_array_value'].basetype.maximum_size == '5'
354+
355+
assert isinstance(string_slot_types_dict['string_dynamic_array_value'], UnboundedSequence)
356+
assert isinstance(string_slot_types_dict['string_dynamic_array_value'].basetype, String)
357+
assert string_slot_types_dict['string_dynamic_array_value'].basetype.maximum_size == 'None'
358+
359+
assert isinstance(string_slot_types_dict['string_static_array_value'], Array)
360+
assert isinstance(string_slot_types_dict['string_static_array_value'].basetype, String)
361+
assert string_slot_types_dict['string_static_array_value'].size == 3
362+
assert string_slot_types_dict['string_static_array_value'].basetype.maximum_size == 'None'

0 commit comments

Comments
 (0)