Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    def test_hierarchy( self ):
        type_names = builtin_type_registry()
        resolver = TypeResolver([type_names])
        hdata = t_hierarchy_meta('test_hierarchy')
        hierarchy = self.meta_type_registry.resolve(resolver, hdata)
        type_names.register('my_test_hierarchy', hierarchy)

        cdata_a = t_hierarchy_class_meta('my_test_hierarchy', 'class_a', base_name=None, fields=[
            t_field_meta('field_a_1', t_named('string')),
            ])
        cdata_b = t_hierarchy_class_meta('my_test_hierarchy', 'class_b', base_name='my_class_a', fields=[
            t_field_meta('field_b_1', t_list_meta(t_named('int'))),
            ])
        self.assertTrue(THierarchy('test_hierarchy').matches(hierarchy))
        class_a = self.meta_type_registry.resolve(resolver, cdata_a)
        type_names.register('my_class_a', class_a)
        class_b = self.meta_type_registry.resolve(resolver, cdata_b)
        self.assertEqual(TClass(hierarchy, 'class_a', TRecord([Field('field_a_1', tString)])), class_a)
        self.assertEqual(TClass(hierarchy, 'class_b', TRecord([Field('field_a_1', tString),
                                                               Field('field_b_1', TList(tInt))])), class_b)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 def test_named( self ):
     resolver = TypeResolver([builtin_type_registry()])
     data = t_named('int')
     t = self.meta_type_registry.resolve(resolver, data)
     self.assertEqual(t, tInt)
     self.assertIs(t, tInt)  # must resolve to same instance