web/test/unittest_viewselector.py
branchstable
changeset 3587 5b3725f315fc
parent 3229 948e0cb59b1a
child 3589 a5432f99f2d9
child 3898 90926f3a8ada
equal deleted inserted replaced
3586:52b00c5e441a 3587:5b3725f315fc
    25 SITEACTIONS = [('siteconfig', actions.SiteConfigurationAction),
    25 SITEACTIONS = [('siteconfig', actions.SiteConfigurationAction),
    26                ('manage', actions.ManageAction),
    26                ('manage', actions.ManageAction),
    27                ('schema', schema.ViewSchemaAction),
    27                ('schema', schema.ViewSchemaAction),
    28                ('siteinfo', actions.SiteInfoAction),
    28                ('siteinfo', actions.SiteInfoAction),
    29                ]
    29                ]
       
    30 FOOTERACTIONS = [('changelog', wdoc.ChangeLogAction),
       
    31                  ('about', wdoc.AboutAction),
       
    32                  ('poweredby', actions.PoweredByAction)]
    30 
    33 
    31 class ViewSelectorTC(EnvBasedTC):
    34 class ViewSelectorTC(EnvBasedTC):
    32 
    35 
    33     def setup_database(self):
    36     def setup_database(self):
    34         self.add_entity('BlogEntry', title=u"une news !", content=u"cubicweb c'est beau")
    37         self.add_entity('BlogEntry', title=u"une news !", content=u"cubicweb c'est beau")
   218     def test_possible_actions_none_rset(self):
   221     def test_possible_actions_none_rset(self):
   219         req = self.request()
   222         req = self.request()
   220         self.assertDictEqual(self.pactions(req, None),
   223         self.assertDictEqual(self.pactions(req, None),
   221                              {'useractions': USERACTIONS,
   224                              {'useractions': USERACTIONS,
   222                               'siteactions': SITEACTIONS,
   225                               'siteactions': SITEACTIONS,
       
   226                               'footer': FOOTERACTIONS,
   223 
   227 
   224                               })
   228                               })
   225     def test_possible_actions_no_entity(self):
   229     def test_possible_actions_no_entity(self):
   226         rset, req = self.env.get_rset_and_req('Any X WHERE X eid 999999')
   230         rset, req = self.env.get_rset_and_req('Any X WHERE X eid 999999')
   227         self.assertDictEqual(self.pactions(req, rset),
   231         self.assertDictEqual(self.pactions(req, rset),
   228                              {'useractions': USERACTIONS,
   232                              {'useractions': USERACTIONS,
   229                               'siteactions': SITEACTIONS,
   233                               'siteactions': SITEACTIONS,
       
   234                               'footer': FOOTERACTIONS,
   230                               })
   235                               })
   231 
   236 
   232     def test_possible_actions_same_type_entities(self):
   237     def test_possible_actions_same_type_entities(self):
   233         rset, req = self.env.get_rset_and_req('CWGroup X')
   238         rset, req = self.env.get_rset_and_req('CWGroup X')
   234         self.assertDictEqual(self.pactions(req, rset),
   239         self.assertDictEqual(self.pactions(req, rset),
   235                              {'useractions': USERACTIONS,
   240                              {'useractions': USERACTIONS,
   236                               'siteactions': SITEACTIONS,
   241                               'siteactions': SITEACTIONS,
       
   242                               'footer': FOOTERACTIONS,
   237                               'mainactions': [('muledit', actions.MultipleEditAction)],
   243                               'mainactions': [('muledit', actions.MultipleEditAction)],
   238                               'moreactions': [('delete', actions.DeleteAction),
   244                               'moreactions': [('delete', actions.DeleteAction),
   239                                               ('addentity', actions.AddNewAction)],
   245                                               ('addentity', actions.AddNewAction)],
   240                               })
   246                               })
   241 
   247 
   242     def test_possible_actions_different_types_entities(self):
   248     def test_possible_actions_different_types_entities(self):
   243         rset, req = self.env.get_rset_and_req('Any X')
   249         rset, req = self.env.get_rset_and_req('Any X')
   244         self.assertDictEqual(self.pactions(req, rset),
   250         self.assertDictEqual(self.pactions(req, rset),
   245                              {'useractions': USERACTIONS,
   251                              {'useractions': USERACTIONS,
   246                               'siteactions': SITEACTIONS,
   252                               'siteactions': SITEACTIONS,
       
   253                               'footer': FOOTERACTIONS,
   247                               'moreactions': [('delete', actions.DeleteAction)],
   254                               'moreactions': [('delete', actions.DeleteAction)],
   248                               })
   255                               })
   249 
   256 
   250     def test_possible_actions_final_entities(self):
   257     def test_possible_actions_final_entities(self):
   251         rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N')
   258         rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N')
   252         self.assertDictEqual(self.pactions(req, rset),
   259         self.assertDictEqual(self.pactions(req, rset),
   253                              {'useractions': USERACTIONS,
   260                              {'useractions': USERACTIONS,
   254                               'siteactions': SITEACTIONS})
   261                               'siteactions': SITEACTIONS,
       
   262                               'footer': FOOTERACTIONS,
       
   263                               })
   255 
   264 
   256     def test_possible_actions_eetype_cwuser_entity(self):
   265     def test_possible_actions_eetype_cwuser_entity(self):
   257         rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWUser"')
   266         rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWUser"')
   258         self.assertDictEqual(self.pactions(req, rset),
   267         self.assertDictEqual(self.pactions(req, rset),
   259                              {'useractions': USERACTIONS,
   268                              {'useractions': USERACTIONS,
   260                               'siteactions': SITEACTIONS,
   269                               'siteactions': SITEACTIONS,
       
   270                               'footer': FOOTERACTIONS,
   261                               'mainactions': [('edit', actions.ModifyAction)],
   271                               'mainactions': [('edit', actions.ModifyAction)],
   262                               'moreactions': [('managepermission', actions.ManagePermissionsAction),
   272                               'moreactions': [('managepermission', actions.ManagePermissionsAction),
   263                                               ('addrelated', actions.AddRelatedActions),
   273                                               ('addrelated', actions.AddRelatedActions),
   264                                               ('delete', actions.DeleteAction),
   274                                               ('delete', actions.DeleteAction),
   265                                               ('copy', actions.CopyAction),
   275                                               ('copy', actions.CopyAction),
   363                               self.vreg['views'].select, 'creation', req, rset=rset)
   373                               self.vreg['views'].select, 'creation', req, rset=rset)
   364         self.assertIsInstance(self.vreg['views'].select('table', req, rset=rset),
   374         self.assertIsInstance(self.vreg['views'].select('table', req, rset=rset),
   365                               tableview.TableView)
   375                               tableview.TableView)
   366 
   376 
   367     def test_interface_selector(self):
   377     def test_interface_selector(self):
   368         image = self.add_entity('Image', name=u'bim.png', data=Binary('bim'))
   378         image = self.add_entity('Image', data_name=u'bim.png', data=Binary('bim'))
   369         # image primary view priority
   379         # image primary view priority
   370         rset, req = self.env.get_rset_and_req('Image X WHERE X name "bim.png"')
   380         rset, req = self.env.get_rset_and_req('Image X WHERE X data_name "bim.png"')
   371         self.assertIsInstance(self.vreg['views'].select('primary', req, rset=rset),
   381         self.assertIsInstance(self.vreg['views'].select('primary', req, rset=rset),
   372                               idownloadable.IDownloadablePrimaryView)
   382                               idownloadable.IDownloadablePrimaryView)
   373 
   383 
   374 
   384 
   375     def test_score_entity_selector(self):
   385     def test_score_entity_selector(self):
   376         image = self.add_entity('Image', name=u'bim.png', data=Binary('bim'))
   386         image = self.add_entity('Image', data_name=u'bim.png', data=Binary('bim'))
   377         # image primary view priority
   387         # image primary view priority
   378         rset, req = self.env.get_rset_and_req('Image X WHERE X name "bim.png"')
   388         rset, req = self.env.get_rset_and_req('Image X WHERE X data_name "bim.png"')
   379         self.assertIsInstance(self.vreg['views'].select('image', req, rset=rset),
   389         self.assertIsInstance(self.vreg['views'].select('image', req, rset=rset),
   380                               idownloadable.ImageView)
   390                               idownloadable.ImageView)
   381         fileobj = self.add_entity('File', name=u'bim.txt', data=Binary('bim'))
   391         fileobj = self.add_entity('File', data_name=u'bim.txt', data=Binary('bim'))
   382         # image primary view priority
   392         # image primary view priority
   383         rset, req = self.env.get_rset_and_req('File X WHERE X name "bim.txt"')
   393         rset, req = self.env.get_rset_and_req('File X WHERE X data_name "bim.txt"')
   384         self.assertRaises(NoSelectableObject, self.vreg['views'].select, 'image', req, rset=rset)
   394         self.assertRaises(NoSelectableObject, self.vreg['views'].select, 'image', req, rset=rset)
   385 
   395 
   386 
   396 
   387 
   397 
   388     def _test_view(self, vid, rql, args):
   398     def _test_view(self, vid, rql, args):
   445     def test(self):
   455     def test(self):
   446         rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWEType"')
   456         rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWEType"')
   447         self.assertDictEqual(self.pactions(req, rset),
   457         self.assertDictEqual(self.pactions(req, rset),
   448                              {'useractions': USERACTIONS,
   458                              {'useractions': USERACTIONS,
   449                               'siteactions': SITEACTIONS,
   459                               'siteactions': SITEACTIONS,
       
   460                               'footer': FOOTERACTIONS,
   450                               'mainactions': [('edit', actions.ModifyAction)],
   461                               'mainactions': [('edit', actions.ModifyAction)],
   451                               'moreactions': [('managepermission', actions.ManagePermissionsAction),
   462                               'moreactions': [('managepermission', actions.ManagePermissionsAction),
   452                                               ('addrelated', actions.AddRelatedActions),
   463                                               ('addrelated', actions.AddRelatedActions),
   453                                               ('delete', actions.DeleteAction),
   464                                               ('delete', actions.DeleteAction),
   454                                               ('copy', actions.CopyAction),
   465                                               ('copy', actions.CopyAction),
   457                               })
   468                               })
   458         rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWRType"')
   469         rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWRType"')
   459         self.assertDictEqual(self.pactions(req, rset),
   470         self.assertDictEqual(self.pactions(req, rset),
   460                              {'useractions': USERACTIONS,
   471                              {'useractions': USERACTIONS,
   461                               'siteactions': SITEACTIONS,
   472                               'siteactions': SITEACTIONS,
       
   473                               'footer': FOOTERACTIONS,
   462                               'mainactions': [('edit', actions.ModifyAction)],
   474                               'mainactions': [('edit', actions.ModifyAction)],
   463                               'moreactions': [('managepermission', actions.ManagePermissionsAction),
   475                               'moreactions': [('managepermission', actions.ManagePermissionsAction),
   464                                               ('addrelated', actions.AddRelatedActions),
   476                                               ('addrelated', actions.AddRelatedActions),
   465                                               ('delete', actions.DeleteAction),
   477                                               ('delete', actions.DeleteAction),
   466                                               ('copy', actions.CopyAction),
   478                                               ('copy', actions.CopyAction),