def test_interface( self ): type_names = builtin_type_registry() resolver = TypeResolver([type_names]) data = t_interface_meta('unit_test_iface', None, [ t_command_meta('request', 'request_one', [t_field_meta('req_param1', t_named('string'))], [t_field_meta('req_result1', t_list_meta(t_named('int')))]), t_command_meta('notification', 'notification_one', [t_field_meta('noti_param1', t_optional_meta(t_named('bool'))), t_field_meta('noti_param2', t_named('datetime'))]), t_command_meta('request', 'request_open', [], [t_field_meta('result', t_optional_meta(t_named('int')))]), ], contents_fields=[ t_field_meta('text', t_named('string')), ], diff_type=t_named('string') ) t = self.meta_type_registry.resolve(resolver, data) self.assertEqual(Interface('unit_test_iface', contents_fields=[ Field('text', tString), ], diff_type=tString, commands=[ RequestCmd('request_one', [Field('req_param1', tString)], [Field('req_result1', TList(tInt))]), NotificationCmd('notification_one', [Field('noti_param1', TOptional(tBool)), Field('noti_param2', tDateTime)]), RequestCmd('request_open', [], [Field('result', TOptional(tInt))]), ]), t)
def test_record( self ): resolver = TypeResolver([builtin_type_registry()]) data = t_record_meta([ t_field_meta('int_field', t_named('int')), t_field_meta('string_list_field', t_list_meta(t_named('string'))), t_field_meta('bool_optional_field', t_optional_meta(t_named('bool'))), ]) t = self.meta_type_registry.resolve(resolver, data) self.assertEqual(TRecord([ Field('int_field', tInt), Field('string_list_field', TList(tString)), Field('bool_optional_field', TOptional(tBool)), ]), t)
def test_list_interface( self ): type_names = builtin_type_registry() resolver = TypeResolver([type_names]) data = t_list_interface_meta('unit_test_list_iface', None, commands=[ t_command_meta('request', 'request_open', [], [t_field_meta('result', t_optional_meta(t_named('int')))]), ], columns=[ t_column_meta('key', t_named('int'), is_key=True), t_column_meta('text', t_named('string'), is_key=False), ], contents_fields=[ t_field_meta('text', t_named('string')), ]) t = self.meta_type_registry.resolve(resolver, data) self.assertEqual(ListInterface('unit_test_list_iface', contents_fields=[ Field('text', tString), ], commands=[ RequestCmd('request_open', [], [Field('result', TOptional(tInt))]), ], columns=[ Column('key', tInt, is_key=True), Column('text', tString), ]), t)
def test_list( self ): resolver = TypeResolver([builtin_type_registry()]) data = t_list_meta(t_optional_meta(t_named('datetime'))) t = self.meta_type_registry.resolve(resolver, data) self.assertEqual(TList(TOptional(tDateTime)), t)
def test_optional( self ): resolver = TypeResolver([builtin_type_registry()]) data = t_optional_meta(t_named('string')) t = self.meta_type_registry.resolve(resolver, data) self.assertEqual(t, TOptional(tString)) self.assertIs(t.base_t, tString)