web/test/unittest_views_editforms.py
branchtls-sprint
changeset 1300 62d2b890a980
parent 1298 ca02a2b5e9be
child 1359 bef6891393d7
equal deleted inserted replaced
1298:ca02a2b5e9be 1300:62d2b890a980
     1 from logilab.common.testlib import unittest_main
     1 from logilab.common.testlib import unittest_main
     2 from cubicweb.devtools.apptest import EnvBasedTC
     2 from cubicweb.devtools.apptest import EnvBasedTC
       
     3 from cubicweb.devtools.testlib import WebTest
     3 from cubicweb.web.views.editforms import AutomaticEntityForm as AEF
     4 from cubicweb.web.views.editforms import AutomaticEntityForm as AEF
     4 
     5 
     5 def rbc(entity, category):
     6 def rbc(entity, category):
     6     return [(rschema.type, x) for rschema, tschemas, x in AEF.erelations_by_category(entity, category)]
     7     return [(rschema.type, x) for rschema, tschemas, x in AEF.erelations_by_category(entity, category)]
     7 
     8 
    38                                ('connait', 'subject'),
    39                                ('connait', 'subject'),
    39                                ('checked_by', 'object'),
    40                                ('checked_by', 'object'),
    40                                ])
    41                                ])
    41         # owned_by is defined both as subject and object relations on EUser
    42         # owned_by is defined both as subject and object relations on EUser
    42         self.assertListEquals(rbc(e, 'generated'),
    43         self.assertListEquals(rbc(e, 'generated'),
    43                               [('is', 'subject'),
    44                               [('has_text', 'subject'),
       
    45                                ('identity', 'subject'),
       
    46                                ('is', 'subject'),
    44                                ('is_instance_of', 'subject'),
    47                                ('is_instance_of', 'subject'),
    45                                ('tags', 'object'),
    48                                ('tags', 'object'),
    46                                ('for_user', 'object'),
    49                                ('for_user', 'object'),
    47                                ('created_by', 'object'),
    50                                ('created_by', 'object'),
    48                                ('wf_info_for', 'object'),
    51                                ('wf_info_for', 'object'),
    49                                ('owned_by', 'object'),
    52                                ('owned_by', 'object'),
       
    53                                ('identity', 'object'),
    50                                ])
    54                                ])
    51 
    55 
    52     def test_inlined_view(self):
    56     def test_inlined_view(self):
    53         self.failUnless(AEF.rinlined.etype_rtag('EUser', 'use_email', 'subject'))
    57         self.failUnless(AEF.rinlined.etype_rtag('EUser', 'use_email', 'subject'))
    54         self.failIf(AEF.rinlined.etype_rtag('EUser', 'primary_email', 'subject'))
    58         self.failIf(AEF.rinlined.etype_rtag('EUser', 'primary_email', 'subject'))
    55                         
    59         
    56     def test_personne_relations_by_category(self):
    60     def test_personne_relations_by_category(self):
    57         e = self.etype_instance('Personne')
    61         e = self.etype_instance('Personne')
    58         self.assertListEquals(rbc(e, 'primary'),
    62         self.assertListEquals(rbc(e, 'primary'),
    59                               [('nom', 'subject'),
    63                               [('nom', 'subject'),
    60                                ('eid', 'subject')
    64                                ('eid', 'subject')
    82         self.assertListEquals(rbc(e, 'generic'),
    86         self.assertListEquals(rbc(e, 'generic'),
    83                               [('travaille', 'subject'),
    87                               [('travaille', 'subject'),
    84                                ('connait', 'object')
    88                                ('connait', 'object')
    85                                ])
    89                                ])
    86         self.assertListEquals(rbc(e, 'generated'),
    90         self.assertListEquals(rbc(e, 'generated'),
    87                               [('is', 'subject'),
    91                               [('has_text', 'subject'),
       
    92                                ('identity', 'subject'),
       
    93                                ('is', 'subject'),
    88                                ('is_instance_of', 'subject'),
    94                                ('is_instance_of', 'subject'),
       
    95                                ('identity', 'object'),
    89                                ])
    96                                ])
       
    97         
       
    98     def test_edition_form(self):
       
    99         rset = self.execute('EUser X LIMIT 1')
       
   100         form = self.vreg.select_object('forms', 'edition', rset.req, rset,
       
   101                                        row=0, col=0)
       
   102         # should be also selectable by specifying entity
       
   103         self.vreg.select_object('forms', 'edition', self.request(), None,
       
   104                                 entity=rset.get_entity(0, 0))
       
   105         self.failIf(any(f for f in form.fields if f is None))
       
   106         
       
   107         
       
   108 class FormViewsTC(WebTest):
       
   109     def test_delete_conf_formview(self):
       
   110         rset = self.execute('EGroup X')
       
   111         self.view('deleteconf', rset, template=None).source
       
   112         
       
   113     def test_automatic_edition_formview(self):
       
   114         rset = self.execute('EUser X')
       
   115         self.view('edition', rset, row=0, template=None).source
       
   116         
       
   117     def test_automatic_edition_formview(self):
       
   118         rset = self.execute('EUser X')
       
   119         self.view('copy', rset, row=0, template=None).source
       
   120         
       
   121     def test_automatic_creation_formview(self):
       
   122         self.view('creation', None, etype='EUser', template=None).source
       
   123         
       
   124     def test_automatic_muledit_formview(self):
       
   125         rset = self.execute('EUser X')
       
   126         self.view('muledit', rset, template=None).source
       
   127         
       
   128     def test_automatic_reledit_formview(self):
       
   129         rset = self.execute('EUser X')
       
   130         self.view('reledit', rset, row=0, rtype='login', template=None).source
       
   131         
       
   132     def test_automatic_inline_edit_formview(self):
       
   133         geid = self.execute('EGroup X LIMIT 1')[0][0]
       
   134         rset = self.execute('EUser X LIMIT 1')
       
   135         self.view('inline-edition', rset, row=0, rtype='in_group', peid=geid, template=None).source
       
   136                               
       
   137     def test_automatic_inline_creation_formview(self):
       
   138         geid = self.execute('EGroup X LIMIT 1')[0][0]
       
   139         self.view('inline-creation', None, etype='EUser', rtype='in_group', peid=geid, template=None).source
       
   140 
       
   141         
    90 if __name__ == '__main__':
   142 if __name__ == '__main__':
    91     unittest_main()
   143     unittest_main()