web/test/unittest_views_basecontrollers.py
changeset 10075 136b5f995f8e
parent 10016 984505da8b89
child 10083 afc5615aa92b
equal deleted inserted replaced
10074:ab956b780d4e 10075:136b5f995f8e
    29 from logilab.common.testlib import unittest_main
    29 from logilab.common.testlib import unittest_main
    30 
    30 
    31 from logilab.common.decorators import monkeypatch
    31 from logilab.common.decorators import monkeypatch
    32 
    32 
    33 from cubicweb import Binary, NoSelectableObject, ValidationError
    33 from cubicweb import Binary, NoSelectableObject, ValidationError
       
    34 from cubicweb.schema import RRQLExpression
    34 from cubicweb.devtools.testlib import CubicWebTC
    35 from cubicweb.devtools.testlib import CubicWebTC
    35 from cubicweb.utils import json_dumps
    36 from cubicweb.utils import json_dumps
    36 from cubicweb.uilib import rql_for_eid
    37 from cubicweb.uilib import rql_for_eid
    37 from cubicweb.web import Redirect, RemoteCallFailed
    38 from cubicweb.web import Redirect, RemoteCallFailed
    38 import cubicweb.server.session
    39 import cubicweb.server.session
   806                 ['python', 'cubicweb', 'javascript'])
   807                 ['python', 'cubicweb', 'javascript'])
   807             self.assertEqual(
   808             self.assertEqual(
   808                 req.execute('Any N WHERE T tags P, P is CWUser, T name N').rows,
   809                 req.execute('Any N WHERE T tags P, P is CWUser, T name N').rows,
   809                 [['javascript']])
   810                 [['javascript']])
   810 
   811 
       
   812     def test_maydel_perms(self):
       
   813         """Check that AjaxEditRelationCtxComponent calls rdef.check with a
       
   814         sufficient context"""
       
   815         self.remote_call('tag_entity', self.john.eid, ['python'])
       
   816         with self.temporary_permissions(
       
   817                 (self.schema['tags'].rdefs['Tag', 'CWUser'],
       
   818                  {'delete': (RRQLExpression('S owned_by U'), )}, )):
       
   819             req = self.request(rql='CWUser P WHERE P login "John"',
       
   820                                pageid='123', fname='view')
       
   821             ctrl = self.ctrl(req)
       
   822             rset = self.john.as_rset()
       
   823             rset.req = req
       
   824             source = ctrl.publish()
       
   825             # maydel jscall
       
   826             self.assertIn('ajaxBoxRemoveLinkedEntity', source)
       
   827 
   811     def test_pending_insertion(self):
   828     def test_pending_insertion(self):
   812         with self.remote_calling('add_pending_inserts', [['12', 'tags', '13']]) as (_, req):
   829         with self.remote_calling('add_pending_inserts', [['12', 'tags', '13']]) as (_, req):
   813             deletes = get_pending_deletes(req)
   830             deletes = get_pending_deletes(req)
   814             self.assertEqual(deletes, [])
   831             self.assertEqual(deletes, [])
   815             inserts = get_pending_inserts(req)
   832             inserts = get_pending_inserts(req)