test/unittest_schema.py
changeset 9711 59616edc20d7
parent 9675 8aabfefc8a81
child 9952 0f3f965b6365
child 9978 8f4b15e5b300
equal deleted inserted replaced
9710:dff4bda87c6a 9711:59616edc20d7
   362             self.assertEqual(tr.comment_format, 'text/plain')
   362             self.assertEqual(tr.comment_format, 'text/plain')
   363 
   363 
   364 
   364 
   365 class CompositeSchemaTC(CubicWebTC):
   365 class CompositeSchemaTC(CubicWebTC):
   366     composites = {
   366     composites = {
   367         'BaseTransition': [('condition', 'BaseTransition', 'RQLExpression', 'subject'),
   367         'BaseTransition': [('condition', 'BaseTransition', 'RQLExpression', 'subject')],
   368                            ('condition', 'Transition', 'RQLExpression', 'subject'),
       
   369                            ('condition', 'WorkflowTransition', 'RQLExpression', 'subject')],
       
   370         'CWAttribute': [('add_permission', 'CWAttribute', 'RQLExpression', 'subject'),
   368         'CWAttribute': [('add_permission', 'CWAttribute', 'RQLExpression', 'subject'),
   371                         ('add_permission', 'CWEType', 'RQLExpression', 'subject'),
       
   372                         ('add_permission', 'CWRelation', 'RQLExpression', 'subject'),
       
   373                         ('constrained_by', 'CWAttribute', 'CWConstraint', 'subject'),
   369                         ('constrained_by', 'CWAttribute', 'CWConstraint', 'subject'),
   374                         ('constrained_by', 'CWRelation', 'CWConstraint', 'subject'),
       
   375                         ('read_permission', 'CWAttribute', 'RQLExpression', 'subject'),
   370                         ('read_permission', 'CWAttribute', 'RQLExpression', 'subject'),
   376                         ('read_permission', 'CWEType', 'RQLExpression', 'subject'),
   371                         ('update_permission', 'CWAttribute', 'RQLExpression', 'subject')],
   377                         ('read_permission', 'CWRelation', 'RQLExpression', 'subject'),
   372         'CWEType': [('add_permission', 'CWEType', 'RQLExpression', 'subject'),
   378                         ('update_permission', 'CWAttribute', 'RQLExpression', 'subject'),
       
   379                         ('update_permission', 'CWEType', 'RQLExpression', 'subject')],
       
   380         'CWEType': [('add_permission', 'CWAttribute', 'RQLExpression', 'subject'),
       
   381                     ('add_permission', 'CWEType', 'RQLExpression', 'subject'),
       
   382                     ('add_permission', 'CWRelation', 'RQLExpression', 'subject'),
       
   383                     ('constraint_of', 'CWUniqueTogetherConstraint', 'CWEType', 'object'),
   373                     ('constraint_of', 'CWUniqueTogetherConstraint', 'CWEType', 'object'),
   384                     ('cw_schema', 'CWSourceSchemaConfig', 'CWEType', 'object'),
   374                     ('cw_schema', 'CWSourceSchemaConfig', 'CWEType', 'object'),
   385                     ('cw_schema', 'CWSourceSchemaConfig', 'CWRType', 'object'),
       
   386                     ('cw_schema', 'CWSourceSchemaConfig', 'CWRelation', 'object'),
       
   387                     ('delete_permission', 'CWEType', 'RQLExpression', 'subject'),
   375                     ('delete_permission', 'CWEType', 'RQLExpression', 'subject'),
   388                     ('delete_permission', 'CWRelation', 'RQLExpression', 'subject'),
       
   389                     ('from_entity', 'CWAttribute', 'CWEType', 'object'),
   376                     ('from_entity', 'CWAttribute', 'CWEType', 'object'),
   390                     ('from_entity', 'CWRelation', 'CWEType', 'object'),
   377                     ('from_entity', 'CWRelation', 'CWEType', 'object'),
   391                     ('read_permission', 'CWAttribute', 'RQLExpression', 'subject'),
       
   392                     ('read_permission', 'CWEType', 'RQLExpression', 'subject'),
   378                     ('read_permission', 'CWEType', 'RQLExpression', 'subject'),
   393                     ('read_permission', 'CWRelation', 'RQLExpression', 'subject'),
       
   394                     ('to_entity', 'CWAttribute', 'CWEType', 'object'),
   379                     ('to_entity', 'CWAttribute', 'CWEType', 'object'),
   395                     ('to_entity', 'CWRelation', 'CWEType', 'object'),
   380                     ('to_entity', 'CWRelation', 'CWEType', 'object'),
   396                     ('update_permission', 'CWAttribute', 'RQLExpression', 'subject'),
       
   397                     ('update_permission', 'CWEType', 'RQLExpression', 'subject')],
   381                     ('update_permission', 'CWEType', 'RQLExpression', 'subject')],
   398         'CWRType': [('cw_schema', 'CWSourceSchemaConfig', 'CWEType', 'object'),
   382         'CWRType': [('cw_schema', 'CWSourceSchemaConfig', 'CWRType', 'object'),
   399                     ('cw_schema', 'CWSourceSchemaConfig', 'CWRType', 'object'),
       
   400                     ('cw_schema', 'CWSourceSchemaConfig', 'CWRelation', 'object'),
       
   401                     ('relation_type', 'CWAttribute', 'CWRType', 'object'),
   383                     ('relation_type', 'CWAttribute', 'CWRType', 'object'),
   402                     ('relation_type', 'CWRelation', 'CWRType', 'object')],
   384                     ('relation_type', 'CWRelation', 'CWRType', 'object')],
   403         'CWRelation': [('add_permission', 'CWAttribute', 'RQLExpression', 'subject'),
   385         'CWRelation': [('add_permission', 'CWRelation', 'RQLExpression', 'subject'),
   404                        ('add_permission', 'CWEType', 'RQLExpression', 'subject'),
       
   405                        ('add_permission', 'CWRelation', 'RQLExpression', 'subject'),
       
   406                        ('constrained_by', 'CWAttribute', 'CWConstraint', 'subject'),
       
   407                        ('constrained_by', 'CWRelation', 'CWConstraint', 'subject'),
   386                        ('constrained_by', 'CWRelation', 'CWConstraint', 'subject'),
   408                        ('cw_schema', 'CWSourceSchemaConfig', 'CWEType', 'object'),
       
   409                        ('cw_schema', 'CWSourceSchemaConfig', 'CWRType', 'object'),
       
   410                        ('cw_schema', 'CWSourceSchemaConfig', 'CWRelation', 'object'),
   387                        ('cw_schema', 'CWSourceSchemaConfig', 'CWRelation', 'object'),
   411                        ('delete_permission', 'CWEType', 'RQLExpression', 'subject'),
       
   412                        ('delete_permission', 'CWRelation', 'RQLExpression', 'subject'),
   388                        ('delete_permission', 'CWRelation', 'RQLExpression', 'subject'),
   413                        ('read_permission', 'CWAttribute', 'RQLExpression', 'subject'),
       
   414                        ('read_permission', 'CWEType', 'RQLExpression', 'subject'),
       
   415                        ('read_permission', 'CWRelation', 'RQLExpression', 'subject')],
   389                        ('read_permission', 'CWRelation', 'RQLExpression', 'subject')],
   416         'CWSource': [('cw_for_source', 'CWSourceSchemaConfig', 'CWSource', 'object'),
   390         'CWSource': [('cw_for_source', 'CWSourceSchemaConfig', 'CWSource', 'object'),
   417                      ('cw_host_config_of', 'CWSourceHostConfig', 'CWSource', 'object'),
   391                      ('cw_host_config_of', 'CWSourceHostConfig', 'CWSource', 'object'),
   418                      ('cw_import_of', 'CWDataImport', 'CWSource', 'object'),
   392                      ('cw_import_of', 'CWDataImport', 'CWSource', 'object'),
   419                      ('cw_source', 'Ami', 'CWSource', 'object'),
   393                      ('cw_source', 'Ami', 'CWSource', 'object'),
   455                      ('cw_source', 'Usine', 'CWSource', 'object'),
   429                      ('cw_source', 'Usine', 'CWSource', 'object'),
   456                      ('cw_source', 'Workflow', 'CWSource', 'object'),
   430                      ('cw_source', 'Workflow', 'CWSource', 'object'),
   457                      ('cw_source', 'WorkflowTransition', 'CWSource', 'object')],
   431                      ('cw_source', 'WorkflowTransition', 'CWSource', 'object')],
   458         'CWUser': [('for_user', 'CWProperty', 'CWUser', 'object'),
   432         'CWUser': [('for_user', 'CWProperty', 'CWUser', 'object'),
   459                    ('use_email', 'CWUser', 'EmailAddress', 'subject'),
   433                    ('use_email', 'CWUser', 'EmailAddress', 'subject'),
   460                    ('wf_info_for', 'TrInfo', 'CWUser', 'object'),
   434                    ('wf_info_for', 'TrInfo', 'CWUser', 'object')],
   461                    ('wf_info_for', 'TrInfo', 'StateFull', 'object')],
   435         'StateFull': [('wf_info_for', 'TrInfo', 'StateFull', 'object')],
   462         'StateFull': [('wf_info_for', 'TrInfo', 'CWUser', 'object'),
   436         'Transition': [('condition', 'Transition', 'RQLExpression', 'subject')],
   463                       ('wf_info_for', 'TrInfo', 'StateFull', 'object')],
       
   464         'Transition': [('condition', 'BaseTransition', 'RQLExpression', 'subject'),
       
   465                        ('condition', 'Transition', 'RQLExpression', 'subject'),
       
   466                        ('condition', 'WorkflowTransition', 'RQLExpression', 'subject')],
       
   467         'Workflow': [('state_of', 'State', 'Workflow', 'object'),
   437         'Workflow': [('state_of', 'State', 'Workflow', 'object'),
   468                      ('transition_of', 'BaseTransition', 'Workflow', 'object'),
   438                      ('transition_of', 'BaseTransition', 'Workflow', 'object'),
   469                      ('transition_of', 'Transition', 'Workflow', 'object'),
   439                      ('transition_of', 'Transition', 'Workflow', 'object'),
   470                      ('transition_of', 'WorkflowTransition', 'Workflow', 'object')],
   440                      ('transition_of', 'WorkflowTransition', 'Workflow', 'object')],
   471         'WorkflowTransition': [('condition', 'BaseTransition', 'RQLExpression', 'subject'),
   441         'WorkflowTransition': [('condition', 'WorkflowTransition', 'RQLExpression', 'subject'),
   472                                ('condition', 'Transition', 'RQLExpression', 'subject'),
       
   473                                ('condition', 'WorkflowTransition', 'RQLExpression', 'subject'),
       
   474                                ('subworkflow_exit', 'WorkflowTransition', 'SubWorkflowExitPoint', 'subject')]
   442                                ('subworkflow_exit', 'WorkflowTransition', 'SubWorkflowExitPoint', 'subject')]
   475     }
   443     }
   476 
   444 
   477     def test_composite_entities(self):
   445     def test_composite_entities(self):
   478         schema = self.vreg.schema
   446         schema = self.vreg.schema
   479         self.assertEqual(sorted(self.composites.keys()),
   447         self.assertEqual(sorted(self.composites),
   480                          [eschema.type
   448                          [eschema.type for eschema in sorted(schema.entities())
   481                           for eschema in sorted(schema.entities())
       
   482                           if eschema.is_composite])
   449                           if eschema.is_composite])
   483         for etype in self.composites:
   450         for etype in self.composites:
   484             self.assertEqual(self.composites[etype],
   451             self.set_description('composite rdefs for %s' % etype)
       
   452             yield self.assertEqual, self.composites[etype], \
   485                              sorted([(r.rtype.type, r.subject.type, r.object.type, role)
   453                              sorted([(r.rtype.type, r.subject.type, r.object.type, role)
   486                                      for r, role in sorted(schema[etype].composite_rdef_roles)]))
   454                                      for r, role in sorted(schema[etype].composite_rdef_roles)])
   487 
   455 
   488 if __name__ == '__main__':
   456 if __name__ == '__main__':
   489     unittest_main()
   457     unittest_main()