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() |