doc/api/web.rst
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 20 Jan 2017 18:17:04 +0100
changeset 11919 3a6746dfc57f
parent 10494 b6f00889355c
permissions -rw-r--r--
Change hooks control (deny_all_hooks_but / allow_all_hooks_but) to be more predictable Prior to this, if one execute code like: with cnx.hooks.deny_all_hooks_but('metadata'): with cnx.hooks.deny_all_hooks_but(): # mycode 'metadata' hooks will be activated anyway in the inner block, which is rather unexpected (of course in real life you only see the latest hooks control statement, the former being higher in the call stack). This is due to the underlying usage of old `enable_hook_categories` / `disable_hook_categories` methods, which were introduced much before the now official context manager based API (with `cnx.[deny|all]_all_hooks_but(...)`). To move on, this patch drop the two legacy methods, rename and privatize related internal state on the connection (`hooks_mode` becomes `_hooks_mode`, `disabled_hook_cats` and `enabled_hook_cats` become `_hooks_categories`) and reimplement the `_hooks_control` context manager to simply update them. See the added unit test for details.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10494
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     1
.. _web_module:
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     2
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     3
:mod:`cubicweb.web`
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     4
===================
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     5
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     6
.. automodule:: cubicweb.web
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     7
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     8
    Exceptions
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
     9
    ----------
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    10
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    11
    .. autoexception:: DirectResponse
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    12
    .. autoexception:: InvalidSession
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    13
    .. autoexception:: PublishException
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    14
    .. autoexception:: LogOut
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    15
    .. autoexception:: Redirect
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    16
    .. autoexception:: StatusResponse
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    17
    .. autoexception:: RequestError
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    18
    .. autoexception:: NothingToEdit
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    19
    .. autoexception:: ProcessFormError
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    20
    .. autoexception:: NotFound
b6f00889355c [doc] Start documenting the API
Christophe de Vienne <christophe@unlish.com>
parents:
diff changeset
    21
    .. autoexception:: RemoteCallFailed