def test_check_constraints(): a = Strings() a.empty_string = 'test' assert(a.empty_string == 'test') assert_raises(AssertionError, setattr, a, 'empty_string', 1234) a.ub_string = 'a' * 22 assert(a.ub_string == 'a' * 22) assert_raises(AssertionError, setattr, a, 'ub_string', 'a' * 23) b = Nested() primitives = Primitives() b.primitives = primitives assert(b.primitives == primitives) assert_raises(AssertionError, setattr, b, 'primitives', 'foo') list_of_primitives = [primitives, primitives] tuple_of_primitives = (primitives, primitives) b.two_primitives = list_of_primitives assert(b.two_primitives == list_of_primitives) assert(type(b.two_primitives) == list) b.two_primitives = tuple_of_primitives assert(b.two_primitives == tuple_of_primitives) assert(type(b.two_primitives) == tuple) assert_raises(AssertionError, setattr, b, 'two_primitives', Primitives()) assert_raises(AssertionError, setattr, b, 'two_primitives', [Primitives()]) assert_raises(AssertionError, setattr, b, 'two_primitives', [primitives, primitives, primitives]) # TODO(wjwwood): reenable when bounded arrays are working C type support. # b.up_to_three_primitives = [] # assert(b.up_to_three_primitives == []) # b.up_to_three_primitives = [primitives] # assert(b.up_to_three_primitives == [primitives]) # b.up_to_three_primitives = [primitives, primitives] # assert(b.up_to_three_primitives == [primitives, primitives]) # b.up_to_three_primitives = [primitives, primitives, primitives] # assert(b.up_to_three_primitives == [primitives, primitives, primitives]) # assert_raises(AssertionError, setattr, b, 'up_to_three_primitives', # [primitives, primitives, primitives, primitives]) b.unbounded_primitives = [primitives, primitives] assert(b.unbounded_primitives == [primitives, primitives]) c = Various() c.byte_value = b'a' assert(c.byte_value == b'a') assert(c.byte_value != 'a') assert_raises(AssertionError, setattr, c, 'byte_value', 'a') assert_raises(AssertionError, setattr, c, 'byte_value', b'abc') assert_raises(AssertionError, setattr, c, 'byte_value', 'abc') c.char_value = 'a' assert(c.char_value == 'a') assert(c.char_value != b'a') assert_raises(AssertionError, setattr, c, 'char_value', b'a') assert_raises(AssertionError, setattr, c, 'char_value', 'abc') assert_raises(AssertionError, setattr, c, 'char_value', b'abc')
def test_slot_types(): a = Nested() assert hasattr(a, 'SLOT_TYPES') assert hasattr(a, '__slots__') nested_slot_types = Nested.SLOT_TYPES nested_slots = getattr(a, '__slots__') assert len(nested_slot_types) == len(nested_slots) assert isinstance(nested_slot_types[0], NamespacedType) assert nested_slot_types[0].namespaces == ['rosidl_generator_py', 'msg'] assert nested_slot_types[0].name == 'Primitives' assert isinstance(nested_slot_types[1], Array) assert isinstance(nested_slot_types[1].value_type, NamespacedType) assert nested_slot_types[1].value_type.namespaces == \ ['rosidl_generator_py', 'msg'] assert nested_slot_types[1].value_type.name == 'Primitives' assert isinstance(nested_slot_types[2], BoundedSequence) assert isinstance(nested_slot_types[2].value_type, NamespacedType) assert nested_slot_types[2].value_type.namespaces == \ ['rosidl_generator_py', 'msg'] assert nested_slot_types[2].value_type.name == 'Primitives' assert isinstance(nested_slot_types[3], UnboundedSequence) assert isinstance(nested_slot_types[3].value_type, NamespacedType) assert nested_slot_types[3].value_type.namespaces == \ ['rosidl_generator_py', 'msg'] assert nested_slot_types[3].value_type.name == 'Primitives'
def test_slot_types(): msg = Nested() assert hasattr(msg, 'SLOT_TYPES') assert hasattr(msg, '__slots__') nested_slot_types = Nested.SLOT_TYPES nested_slots = getattr(msg, '__slots__') assert len(nested_slot_types) == len(nested_slots) assert isinstance(nested_slot_types[0], NamespacedType) assert nested_slot_types[0].namespaces == ['rosidl_generator_py', 'msg'] assert nested_slot_types[0].name == 'BasicTypes'
def test_slot_attributes(): msg = Nested() assert hasattr(msg, 'get_fields_and_field_types') assert hasattr(msg, '__slots__') nested_slot_types_dict = getattr(msg, 'get_fields_and_field_types')() nested_slots = getattr(msg, '__slots__') assert len(nested_slot_types_dict) == len(nested_slots) expected_nested_slot_types_dict = { 'basic_types_value': 'rosidl_generator_py/BasicTypes', } assert len(nested_slot_types_dict) == len(expected_nested_slot_types_dict) for expected_field, expected_slot_type in expected_nested_slot_types_dict.items( ): assert expected_field in nested_slot_types_dict.keys() assert expected_slot_type == nested_slot_types_dict[expected_field]
def test_slot_attributes(): a = Nested() assert hasattr(a, 'get_fields_and_field_types') assert hasattr(a, '__slots__') nested_slot_types_dict = getattr(a, 'get_fields_and_field_types')() nested_slots = getattr(a, '__slots__') assert len(nested_slot_types_dict) == len(nested_slots) expected_nested_slot_types_dict = { 'primitives': 'rosidl_generator_py/Primitives', 'two_primitives': 'rosidl_generator_py/Primitives[2]', 'up_to_three_primitives': 'rosidl_generator_py/Primitives[<=3]', 'unbounded_primitives': 'rosidl_generator_py/Primitives[]', } assert len(nested_slot_types_dict) == len(expected_nested_slot_types_dict) for expected_field, expected_slot_type in expected_nested_slot_types_dict.items( ): assert expected_field in nested_slot_types_dict.keys() assert expected_slot_type == nested_slot_types_dict[expected_field]
def test_check_constraints(): a = Strings() a.empty_string = 'test' assert 'test' == a.empty_string with pytest.raises(AssertionError): setattr(a, 'empty_string', 1234) a.ub_string = 'a' * 22 assert 'a' * 22 == a.ub_string with pytest.raises(AssertionError): setattr(a, 'ub_string', 'a' * 23) b = Nested() primitives = Primitives() b.primitives = primitives assert b.primitives == primitives with pytest.raises(AssertionError): setattr(b, 'primitives', 'foo') list_of_primitives = [primitives, primitives] tuple_of_primitives = (primitives, primitives) b.two_primitives = list_of_primitives assert b.two_primitives == list_of_primitives assert type(b.two_primitives) == list b.two_primitives = tuple_of_primitives assert b.two_primitives == tuple_of_primitives assert type(b.two_primitives) == tuple with pytest.raises(AssertionError): setattr(b, 'two_primitives', Primitives()) with pytest.raises(AssertionError): setattr(b, 'two_primitives', [Primitives()]) with pytest.raises(AssertionError): setattr(b, 'two_primitives', [primitives, primitives, primitives]) b.up_to_three_primitives = [] assert [] == b.up_to_three_primitives b.up_to_three_primitives = [primitives] assert [primitives] == b.up_to_three_primitives b.up_to_three_primitives = [primitives, primitives] assert [primitives, primitives] == b.up_to_three_primitives b.up_to_three_primitives = [primitives, primitives, primitives] assert [primitives, primitives, primitives] == b.up_to_three_primitives with pytest.raises(AssertionError): setattr(b, 'up_to_three_primitives', [primitives, primitives, primitives, primitives]) b.unbounded_primitives = [primitives, primitives] assert [primitives, primitives] == b.unbounded_primitives c = Various() c.byte_value = b'a' assert b'a' == c.byte_value assert 'a' != c.byte_value with pytest.raises(AssertionError): setattr(c, 'byte_value', 'a') with pytest.raises(AssertionError): setattr(c, 'byte_value', b'abc') with pytest.raises(AssertionError): setattr(c, 'byte_value', 'abc') c.char_value = ord('a') assert ord('a') == c.char_value assert b'a' != c.char_value with pytest.raises(AssertionError): setattr(c, 'char_value', b'a') with pytest.raises(AssertionError): setattr(c, 'char_value', 'abc') with pytest.raises(AssertionError): setattr(c, 'char_value', b'abc') c.up_to_three_int32_values = [] assert [] == c.up_to_three_int32_values.tolist() c.up_to_three_int32_values = [12345, -12345] assert [12345, -12345] == c.up_to_three_int32_values.tolist() c.up_to_three_int32_values = [12345, -12345, 6789] assert [12345, -12345, 6789] == c.up_to_three_int32_values.tolist() c.up_to_three_int32_values = [12345, -12345, 6789] with pytest.raises(AssertionError): setattr(c, 'up_to_three_int32_values', [12345, -12345, 6789, -6789]) c.up_to_three_string_values = [] assert [] == c.up_to_three_string_values c.up_to_three_string_values = ['foo', 'bar'] assert ['foo', 'bar'] == c.up_to_three_string_values c.up_to_three_string_values = ['foo', 'bar', 'baz'] assert ['foo', 'bar', 'baz'] == c.up_to_three_string_values with pytest.raises(AssertionError): setattr(c, 'up_to_three_string_values', ['foo', 'bar', 'baz', 'hello'])
def test_check_constraints(): a = Strings() a.empty_string = 'test' assert 'test' == a.empty_string assert_raises(AssertionError, setattr, a, 'empty_string', 1234) a.ub_string = 'a' * 22 assert 'a' * 22 == a.ub_string assert_raises(AssertionError, setattr, a, 'ub_string', 'a' * 23) b = Nested() primitives = Primitives() b.primitives = primitives assert b.primitives == primitives assert_raises(AssertionError, setattr, b, 'primitives', 'foo') list_of_primitives = [primitives, primitives] tuple_of_primitives = (primitives, primitives) b.two_primitives = list_of_primitives assert b.two_primitives == list_of_primitives assert type(b.two_primitives) == list b.two_primitives = tuple_of_primitives assert b.two_primitives == tuple_of_primitives assert type(b.two_primitives) == tuple assert_raises(AssertionError, setattr, b, 'two_primitives', Primitives()) assert_raises(AssertionError, setattr, b, 'two_primitives', [Primitives()]) assert_raises(AssertionError, setattr, b, 'two_primitives', [primitives, primitives, primitives]) b.up_to_three_primitives = [] assert [] == b.up_to_three_primitives b.up_to_three_primitives = [primitives] assert [primitives] == b.up_to_three_primitives b.up_to_three_primitives = [primitives, primitives] assert [primitives, primitives] == b.up_to_three_primitives b.up_to_three_primitives = [primitives, primitives, primitives] assert [primitives, primitives, primitives] == b.up_to_three_primitives assert_raises(AssertionError, setattr, b, 'up_to_three_primitives', [primitives, primitives, primitives, primitives]) b.unbounded_primitives = [primitives, primitives] assert [primitives, primitives] == b.unbounded_primitives c = Various() c.byte_value = b'a' assert b'a' == c.byte_value assert 'a' != c.byte_value assert_raises(AssertionError, setattr, c, 'byte_value', 'a') assert_raises(AssertionError, setattr, c, 'byte_value', b'abc') assert_raises(AssertionError, setattr, c, 'byte_value', 'abc') c.char_value = 'a' assert 'a' == c.char_value assert b'a' != c.char_value assert_raises(AssertionError, setattr, c, 'char_value', b'a') assert_raises(AssertionError, setattr, c, 'char_value', 'abc') assert_raises(AssertionError, setattr, c, 'char_value', b'abc') c.up_to_three_int32_values = [] assert [] == c.up_to_three_int32_values c.up_to_three_int32_values = [12345, -12345] assert [12345, -12345] == c.up_to_three_int32_values c.up_to_three_int32_values = [12345, -12345, 6789] assert [12345, -12345, 6789] == c.up_to_three_int32_values c.up_to_three_int32_values = [12345, -12345, 6789] assert_raises( AssertionError, setattr, c, 'up_to_three_int32_values', [12345, -12345, 6789, -6789]) c.up_to_three_string_values = [] assert [] == c.up_to_three_string_values c.up_to_three_string_values = ['foo', 'bar'] assert ['foo', 'bar'] == c.up_to_three_string_values c.up_to_three_string_values = ['foo', 'bar', 'baz'] assert ['foo', 'bar', 'baz'] == c.up_to_three_string_values assert_raises( AssertionError, setattr, c, 'up_to_three_string_values', ['foo', 'bar', 'baz', 'hello'])