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
Nicolas Chauvat's avatar
Nicolas Chauvat committed
from cubes.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()