Skip to content
Snippets Groups Projects
unittest_link.py 2.09 KiB
Newer Older
Nicolas Chauvat's avatar
Nicolas Chauvat committed
# -*- coding: utf-8 -*-
Sandrine Ribeau's avatar
Sandrine Ribeau committed
from cubicweb.devtools.testlib import CubicWebTC
from cubicweb.web.views import uicfg, actions
from cubicweb_link import views
Sylvain Thénault's avatar
Sylvain Thénault committed
afs = uicfg.autoform_section
Sandrine Ribeau's avatar
Sandrine Ribeau committed

Adrien Di Mascio's avatar
Adrien Di Mascio committed

Sandrine Ribeau's avatar
Sandrine Ribeau committed
class LinkTC(CubicWebTC):
Nicolas Chauvat's avatar
Nicolas Chauvat committed

    def setup_database(self):
        with self.admin_access.repo_cnx() as cnx:
            cnx.create_entity('Link', title=u"vous êtes perdu ?", url=u"http://www.perdu.com")
            cnx.commit()
Sylvain Thénault's avatar
Sylvain Thénault committed

Nicolas Chauvat's avatar
Nicolas Chauvat committed
    def test_possible_actions(self):
        with self.admin_access.web_request() as req:
            rset = req.execute('Any X WHERE X is Link')
            allactions = self.pactionsdict(req, rset)
            self.assertEqual(allactions['mainactions'],
                             [actions.ModifyAction,
                              views.LinkFollowAction])
            self.assertEqual(allactions['moreactions'],
                             [actions.ManagePermissionsAction,
                              actions.AddRelatedActions,
                              actions.DeleteAction,
                              actions.CopyAction,
                              ])
Nicolas Chauvat's avatar
Nicolas Chauvat committed

    def test_relations_by_category(self):
        def rbc(iterable):
            return [(rschema.type, x) for rschema, tschemas, x in iterable]
        with self.admin_access.web_request() as req:
            e = self.vreg["etypes"].etype_class('Link')(req)
            self.assertEqual(rbc(afs.relations_by_section(e, 'main', 'attributes', 'update')),
Adrien Di Mascio's avatar
Adrien Di Mascio committed
                             [('title', 'subject'), ('url', 'subject'),
                              ('description', 'subject')])
        with self.admin_access.repo_cnx() as cnx:
            self.create_user(cnx, u'toto')
        with self.new_access(u'toto').web_request() as req:
            # create a new instance with the new connection
            e = self.vreg["etypes"].etype_class('Link')(req)
            self.assertEqual(rbc(afs.relations_by_section(e, 'main', 'attributes', 'update')),
Adrien Di Mascio's avatar
Adrien Di Mascio committed
                             [('title', 'subject'), ('url', 'subject'),
                              ('description', 'subject')])

Sylvain Thénault's avatar
Sylvain Thénault committed

Nicolas Chauvat's avatar
Nicolas Chauvat committed
if __name__ == '__main__':
    from unittest import main
    main()