22 from six import text_type |
22 from six import text_type |
23 from six.moves import http_client |
23 from six.moves import http_client |
24 from six.moves.http_cookies import SimpleCookie |
24 from six.moves.http_cookies import SimpleCookie |
25 |
25 |
26 from logilab.common.testlib import TestCase, unittest_main |
26 from logilab.common.testlib import TestCase, unittest_main |
27 from logilab.common.decorators import clear_cache, classproperty |
27 from logilab.common.decorators import clear_cache |
28 |
28 |
29 from cubicweb import view |
29 from cubicweb import view |
30 from cubicweb.devtools.testlib import CubicWebTC, real_error_handling |
30 from cubicweb.devtools.testlib import CubicWebTC, real_error_handling |
31 from cubicweb.devtools.fake import FakeRequest |
31 from cubicweb.devtools.fake import FakeRequest |
32 from cubicweb.web import LogOut, Redirect, INTERNAL_FIELD_VALUE |
32 from cubicweb.web import LogOut, Redirect, INTERNAL_FIELD_VALUE |
33 from cubicweb.web.views.basecontrollers import ViewController |
33 from cubicweb.web.views.basecontrollers import ViewController |
34 from cubicweb.web.application import anonymized_request |
34 from cubicweb.web.application import anonymized_request |
35 from cubicweb import repoapi |
|
36 |
35 |
37 |
36 |
38 class FakeMapping: |
37 class FakeMapping: |
39 """emulates a mapping module""" |
38 """emulates a mapping module""" |
40 def __init__(self): |
39 def __init__(self): |
572 with self.admin_access.web_request() as req: |
571 with self.admin_access.web_request() as req: |
573 dir_eid = text_type(mydir.eid) |
572 dir_eid = text_type(mydir.eid) |
574 perm_eid = text_type(perm.eid) |
573 perm_eid = text_type(perm.eid) |
575 req.form = { |
574 req.form = { |
576 'eid': [dir_eid, perm_eid], |
575 'eid': [dir_eid, perm_eid], |
577 '__maineid' : dir_eid, |
576 '__maineid': dir_eid, |
578 '__type:%s' % dir_eid: 'Directory', |
577 '__type:%s' % dir_eid: 'Directory', |
579 '__type:%s' % perm_eid: 'DirectoryPermission', |
578 '__type:%s' % perm_eid: 'DirectoryPermission', |
580 '_cw_entity_fields:%s' % dir_eid: '', |
579 '_cw_entity_fields:%s' % dir_eid: '', |
581 '_cw_entity_fields:%s' % perm_eid: 'has_permission-object', |
580 '_cw_entity_fields:%s' % perm_eid: 'has_permission-object', |
582 'has_permission-object:%s' % perm_eid: '', |
581 'has_permission-object:%s' % perm_eid: '', |
583 } |
582 } |
584 path, _params = self.expect_redirect_handle_request(req, 'edit') |
583 path, _params = self.expect_redirect_handle_request(req, 'edit') |
585 self.assertTrue(req.find('Directory', eid=mydir.eid)) |
584 self.assertTrue(req.find('Directory', eid=mydir.eid)) |
586 self.assertFalse(req.find('DirectoryPermission', eid=perm.eid)) |
585 self.assertFalse(req.find('DirectoryPermission', eid=perm.eid)) |
587 |
586 |
588 def test_ajax_view_raise_arbitrary_error(self): |
587 def test_ajax_view_raise_arbitrary_error(self): |