implicitly convert unicode objects to str for form values
This commit is contained in:
parent
5e5cf2f380
commit
09b0ae72d4
1 changed files with 16 additions and 0 deletions
|
|
@ -44,6 +44,7 @@ from urlparse import urlsplit
|
|||
import mimetypes
|
||||
from contextlib import closing
|
||||
from gzip import GzipFile
|
||||
import warnings
|
||||
|
||||
from weboob.tools.decorators import retry
|
||||
from weboob.tools.log import getLogger
|
||||
|
|
@ -122,6 +123,11 @@ class NoHistory(object):
|
|||
class BrokenPageError(Exception):
|
||||
pass
|
||||
|
||||
class FormFieldConversionWarning(UserWarning):
|
||||
"""
|
||||
A value has been set to a form's field and has been implicitly converted.
|
||||
"""
|
||||
|
||||
|
||||
class BasePage(object):
|
||||
"""
|
||||
|
|
@ -441,6 +447,16 @@ class StandardBrowser(mechanize.Browser):
|
|||
if certhash not in hsh:
|
||||
raise ssl.SSLError()
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
if isinstance(value, unicode):
|
||||
value = value.encode(self.ENCODING or 'utf-8')
|
||||
warnings.warn('Implicit conversion of form field %r from unicode to str' % key,
|
||||
FormFieldConversionWarning, stacklevel=2)
|
||||
if self.form is None:
|
||||
raise AttributeError('Please select a form before setting values to fields')
|
||||
return self.form.__setitem__(key, value)
|
||||
|
||||
|
||||
|
||||
class BaseBrowser(StandardBrowser):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue