web/test/unittest_views_editforms.py
branchstable
changeset 4570 ede247bbbf62
parent 4252 6c4f109c2b03
child 4677 c701aac36f5c
equal deleted inserted replaced
4569:1acd90d0cb59 4570:ede247bbbf62
    14 
    14 
    15 AFFK = uicfg.autoform_field_kwargs
    15 AFFK = uicfg.autoform_field_kwargs
    16 AFS = uicfg.autoform_section
    16 AFS = uicfg.autoform_section
    17 
    17 
    18 def rbc(entity, formtype, section):
    18 def rbc(entity, formtype, section):
    19     return [(rschema.type, x) for rschema, tschemas, x in AFS.relations_by_section(entity, formtype, section)]
    19     if section in ('attributes', 'metadata', 'hidden'):
       
    20         permission = 'update'
       
    21     else:
       
    22         permission = 'add'
       
    23     return [(rschema.type, x) for rschema, tschemas, x in AFS.relations_by_section(entity, formtype, section, permission)]
    20 
    24 
    21 class AutomaticEntityFormTC(CubicWebTC):
    25 class AutomaticEntityFormTC(CubicWebTC):
    22 
    26 
    23     def test_custom_widget(self):
    27     def test_custom_widget(self):
    24         AFFK.tag_subject_of(('CWUser', 'login', '*'),
    28         AFFK.tag_subject_of(('CWUser', 'login', '*'),
    67                                ])
    71                                ])
    68         self.assertListEquals(rbc(e, 'main', 'inlined'),
    72         self.assertListEquals(rbc(e, 'main', 'inlined'),
    69                               [('use_email', 'subject'),
    73                               [('use_email', 'subject'),
    70                                ])
    74                                ])
    71         # owned_by is defined both as subject and object relations on CWUser
    75         # owned_by is defined both as subject and object relations on CWUser
    72         self.assertListEquals(rbc(e, 'main', 'hidden'),
    76         self.assertListEquals(sorted(rbc(e, 'main', 'hidden')),
    73                               [('in_state', 'subject'),
    77                               sorted([('has_text', 'subject'),
    74                                ('is', 'subject'),
    78                                       ('identity', 'subject'),
    75                                ('is_instance_of', 'subject'),
    79                                       ('tags', 'object'),
    76                                ('has_text', 'subject'),
    80                                       ('for_user', 'object'),
    77                                ('identity', 'subject'),
    81                                       ('created_by', 'object'),
    78                                ('tags', 'object'),
    82                                       ('wf_info_for', 'object'),
    79                                ('for_user', 'object'),
    83                                       ('owned_by', 'object'),
    80                                ('created_by', 'object'),
    84                                       ('identity', 'object'),
    81                                ('wf_info_for', 'object'),
    85                                       ]))
    82                                ('owned_by', 'object'),
       
    83                                ('identity', 'object'),
       
    84                                ])
       
    85 
    86 
    86     def test_inlined_view(self):
    87     def test_inlined_view(self):
    87         self.failUnless('main_inlined' in AFS.etype_get('CWUser', 'use_email', 'subject', 'EmailAddress'))
    88         self.failUnless('main_inlined' in AFS.etype_get('CWUser', 'use_email', 'subject', 'EmailAddress'))
    88         self.failIf('main_inlined' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress'))
    89         self.failIf('main_inlined' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress'))
    89         self.failUnless('main_relations' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress'))
    90         self.failUnless('main_relations' in AFS.etype_get('CWUser', 'primary_email', 'subject', 'EmailAddress'))
   120         self.assertListEquals(rbc(e, 'main', 'relations'),
   121         self.assertListEquals(rbc(e, 'main', 'relations'),
   121                               [('travaille', 'subject'),
   122                               [('travaille', 'subject'),
   122                                ('connait', 'object')
   123                                ('connait', 'object')
   123                                ])
   124                                ])
   124         self.assertListEquals(rbc(e, 'main', 'hidden'),
   125         self.assertListEquals(rbc(e, 'main', 'hidden'),
   125                               [('is', 'subject'),
   126                               [('has_text', 'subject'),
   126                                ('has_text', 'subject'),
       
   127                                ('identity', 'subject'),
   127                                ('identity', 'subject'),
   128                                ('is_instance_of', 'subject'),
       
   129                                ('identity', 'object'),
   128                                ('identity', 'object'),
   130                                ])
   129                                ])
   131 
   130 
   132     def test_edition_form(self):
   131     def test_edition_form(self):
   133         rset = self.execute('CWUser X LIMIT 1')
   132         rset = self.execute('CWUser X LIMIT 1')