doc/api/web.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Tue, 06 Aug 2019 14:26:17 +0200
branch3.26
changeset 12719 9fb4a71f119d
parent 10494 b6f00889355c
permissions -rw-r--r--
[py3] Pass bytes as "msg" to smtplib.SMTP.sendmail() When passing a unicode string to smtplib.SMTP.sendmail() as "msg" argument, there is an implicit bytes encoding using "ascii" encoding in python3. Of course this does not work if the string contains non-ASCII characters. In fact, config's sendmails method intent to pass bytes to smtplib.SMTP.sendmail() as it uses msg.as_string() method. Unfortunately, in python3, this method returns a unicode string whereas it returns a bytes string in python2; we thus fix this by calling as_bytes() method on python3. As there is no "as_bytes" method in python2, we need to handle python2 compatibility by hand and either call as_string() or as_bytes(). In testlib, where we mock smtplib.SMTP, we need to keep the "msg" argument of Email class (defined in testlib as well) a unicode string. Otherwise, it fails to be parsed by email.message_from_string() (from stdlib) if it is bytes on python3.
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