Skip to content
Snippets Groups Projects
unittest_link.py 2.01 KiB
Newer Older
Nicolas Chauvat's avatar
Nicolas Chauvat committed
# -*- coding: utf-8 -*-
from cubicweb.devtools.apptest import EnvBasedTC
from cubicweb.web.views.autoform import AutomaticEntityForm as aef
Nicolas Chauvat's avatar
Nicolas Chauvat committed
from cubicweb.web.views import actions, embedding
from cubes.link import views

class LinkTC(EnvBasedTC):

    def setup_database(self):
        self.add_entity('Link', title=u"vous êtes perdu ?", url=u"http://www.perdu.com")
        
    def test_possible_actions(self):
        rset, req = self.env.get_rset_and_req('Link X')
        self.assertEquals(self.pactionsdict(req, rset),
                             {'mainactions': [actions.ModifyAction, views.LinkFollowAction],
                              'moreactions': [actions.ManagePermissionsAction,actions.DeleteAction,
                                              actions.CopyAction,
Nicolas Chauvat's avatar
Nicolas Chauvat committed
                                              embedding.EmbedAction],
                              })

    def test_relations_by_category(self):
        def rbc(iterable):
            return [(rschema.type, x) for rschema, tschemas, x in iterable]
        e = self.etype_instance('Link')
        # we should only see embed when we are in the managers group
        self.assertEquals(rbc(aef.erelations_by_category(e, 'secondary', 'add')),
Nicolas Chauvat's avatar
Nicolas Chauvat committed
                          [('embed', 'subject'),
                           ('description', 'subject')])
        self.assertEquals(rbc(aef.erelations_by_category(e,'secondary', 'delete')),
Nicolas Chauvat's avatar
Nicolas Chauvat committed
                          [('embed', 'subject'),
                           ('description', 'subject')])
        self.create_user('toto')
        self.login('toto')
        e = self.etype_instance('Link') # create a new instance with the new connection
        self.assertEquals(rbc(aef.erelations_by_category(e, 'secondary', 'add')),
Nicolas Chauvat's avatar
Nicolas Chauvat committed
                          [('description', 'subject')])
        self.assertEquals(rbc(aef.erelations_by_category(e, 'secondary', 'delete')),
Nicolas Chauvat's avatar
Nicolas Chauvat committed
                          [('description', 'subject')])
        
if __name__ == '__main__':
    from logilab.common.testlib import unittest_main
    unittest_main()