def complex_type_property_declarations(): return { 'TestString': (Types.parse_type_name('Edm.String'), "'FooBar'", "'FooBar'", 'FooBar'), 'TestBoolean': (Types.parse_type_name('Edm.Boolean'), False, 'false', False), 'TestInt64': (Types.parse_type_name('Edm.Int64'), '123L', '123L', 123), 'TestDateTime': (Types.parse_type_name('Edm.DateTime'), "/Date(2147483647000)/", "datetime'2038-01-19T3:14:7'", datetime.datetime(2038, 1, 19, hour=3, minute=14, second=7, tzinfo=datetime.timezone.utc)) }
def test_type_parsing(): """Test parsing of type names""" type_info = Types.parse_type_name('Edm.Boolean') assert type_info[0] is None assert type_info[1] == 'Edm.Boolean' assert not type_info[2] type_info = Types.parse_type_name('SomeType') assert type_info[0] is None assert type_info[1] == 'SomeType' assert not type_info[2] type_info = Types.parse_type_name('SomeNamespace.SomeType') assert type_info[0] == 'SomeNamespace' assert type_info[1] == 'SomeType' assert not type_info[2] # collections type_info = Types.parse_type_name('Collection(Edm.String)') assert type_info[0] is None assert type_info[1] == 'Edm.String' assert type_info[2] type_info = Types.parse_type_name('Collection(SomeType)') assert type_info[0] is None assert type_info[1] == 'SomeType' assert type_info[2] type_info = Types.parse_type_name('Collection(SomeNamespace.SomeType)') assert type_info[0] == 'SomeNamespace' assert type_info[1] == 'SomeType' assert type_info[2]
def variable_of_string_nullable(): variable = VariableDeclaration('TestVariable', Types.parse_type_name('Edm.String'), True, None, None, None) variable.typ = Types.from_name(variable.type_info.name) return variable