[FIX] *: using werkzeug.url_encode instead of urllib.urlencode because urliblib.encode does not accept unicode

bzr revid: dle@openerp.com-20140129121316-b5f5e4r6fz9l80kq
This commit is contained in:
Denis Ledoux 2014-01-29 13:13:16 +01:00
parent 911d95eabd
commit 0306adbfe3
15 changed files with 34 additions and 35 deletions

View File

@ -1,6 +1,6 @@
import logging import logging
import urllib import werkzeug.urls
import urlparse import urlparse
import urllib2 import urllib2
import simplejson import simplejson
@ -25,7 +25,7 @@ class res_users(osv.Model):
] ]
def _auth_oauth_rpc(self, cr, uid, endpoint, access_token, context=None): def _auth_oauth_rpc(self, cr, uid, endpoint, access_token, context=None):
params = urllib.urlencode({'access_token': access_token}) params = werkzeug.url_encode({'access_token': access_token})
if urlparse.urlparse(endpoint)[4]: if urlparse.urlparse(endpoint)[4]:
url = endpoint + '&' + params url = endpoint + '&' + params
else: else:

View File

@ -24,7 +24,7 @@ from openerp import SUPERUSER_ID
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp.addons.web.http import request from openerp.addons.web.http import request
import urllib import werkzeug.urls
import urllib2 import urllib2
import simplejson import simplejson
@ -43,7 +43,7 @@ class google_service(osv.osv_memory):
#Get the Refresh Token From Google And store it in ir.config_parameter #Get the Refresh Token From Google And store it in ir.config_parameter
headers = {"Content-type": "application/x-www-form-urlencoded"} headers = {"Content-type": "application/x-www-form-urlencoded"}
data = dict(code=authorization_code, client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri, grant_type="authorization_code") data = dict(code=authorization_code, client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri, grant_type="authorization_code")
data = urllib.urlencode(data) data = werkzeug.url_encode(data)
try: try:
req = urllib2.Request("https://accounts.google.com/o/oauth2/token", data, headers) req = urllib2.Request("https://accounts.google.com/o/oauth2/token", data, headers)
content = urllib2.urlopen(req).read() content = urllib2.urlopen(req).read()
@ -62,7 +62,7 @@ class google_service(osv.osv_memory):
'response_type': 'code', 'response_type': 'code',
'client_id': ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service), 'client_id': ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service),
} }
uri = 'https://accounts.google.com/o/oauth2/auth?%s' % urllib.urlencode(params) uri = 'https://accounts.google.com/o/oauth2/auth?%s' % werkzeug.url_encode(params)
return uri return uri
#If no scope is passed, we use service by default to get a default scope #If no scope is passed, we use service by default to get a default scope
@ -83,7 +83,7 @@ class google_service(osv.osv_memory):
'access_type':'offline' 'access_type':'offline'
} }
uri = self.get_uri_oauth(a='auth') + "?%s" % urllib.urlencode(params) uri = self.get_uri_oauth(a='auth') + "?%s" % werkzeug.url_encode(params)
return uri return uri
def _get_google_token_json(self, cr, uid, authorize_code, service, context=None): def _get_google_token_json(self, cr, uid, authorize_code, service, context=None):
@ -103,7 +103,7 @@ class google_service(osv.osv_memory):
headers = {"content-type": "application/x-www-form-urlencoded"} headers = {"content-type": "application/x-www-form-urlencoded"}
try: try:
data = urllib.urlencode(params) data = werkzeug.url_encode(params)
req = urllib2.Request(self.get_uri_oauth(a='token'), data, headers) req = urllib2.Request(self.get_uri_oauth(a='token'), data, headers)
content = urllib2.urlopen(req).read() content = urllib2.urlopen(req).read()
@ -128,7 +128,7 @@ class google_service(osv.osv_memory):
headers = {"content-type": "application/x-www-form-urlencoded"} headers = {"content-type": "application/x-www-form-urlencoded"}
try: try:
data = urllib.urlencode(params) data = werkzeug.url_encode(params)
req = urllib2.Request(self.get_uri_oauth(a='token'), data, headers) req = urllib2.Request(self.get_uri_oauth(a='token'), data, headers)
content = urllib2.urlopen(req).read() content = urllib2.urlopen(req).read()
res = simplejson.loads(content) res = simplejson.loads(content)
@ -139,12 +139,12 @@ class google_service(osv.osv_memory):
def _do_request(self,cr,uid,uri,params={},headers={},type='POST', context=None): def _do_request(self,cr,uid,uri,params={},headers={},type='POST', context=None):
_logger.debug("Uri: %s - Type : %s - Headers: %s - Params : %s !" % (uri,type,headers,urllib.urlencode(params) if type =='GET' else params)) _logger.debug("Uri: %s - Type : %s - Headers: %s - Params : %s !" % (uri,type,headers,werkzeug.url_encode(params) if type =='GET' else params))
res = False res = False
try: try:
if type.upper() == 'GET' or type.upper() == 'DELETE': if type.upper() == 'GET' or type.upper() == 'DELETE':
data = urllib.urlencode(params) data = werkzeug.url_encode(params)
req = urllib2.Request(self.get_uri_api() + uri + "?" + data) req = urllib2.Request(self.get_uri_api() + uri + "?" + data)
elif type.upper() == 'POST' or type.upper() == 'PATCH' or type.upper() == 'PUT': elif type.upper() == 'POST' or type.upper() == 'PATCH' or type.upper() == 'PUT':
req = urllib2.Request(self.get_uri_api() + uri, params, headers) req = urllib2.Request(self.get_uri_api() + uri, params, headers)

View File

@ -23,7 +23,7 @@ from openerp import SUPERUSER_ID
from openerp.osv import fields, osv from openerp.osv import fields, osv
from openerp.tools.translate import _ from openerp.tools.translate import _
import urllib import werkzeug.urls
import urllib2 import urllib2
import json import json
import re import re
@ -70,7 +70,7 @@ class config(osv.Model):
google_drive_client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_client_secret') google_drive_client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_client_secret')
#For Getting New Access Token With help of old Refresh Token #For Getting New Access Token With help of old Refresh Token
data = urllib.urlencode(dict(client_id=google_drive_client_id, data = werkzeug.url_encode(dict(client_id=google_drive_client_id,
refresh_token=google_drive_refresh_token, refresh_token=google_drive_refresh_token,
client_secret=google_drive_client_secret, client_secret=google_drive_client_secret,
grant_type="refresh_token", grant_type="refresh_token",

View File

@ -23,7 +23,7 @@ import simplejson
import logging import logging
from lxml import etree from lxml import etree
import re import re
import urllib import werkzeug.urls
import urllib2 import urllib2
from openerp.osv import osv from openerp.osv import osv
@ -89,7 +89,7 @@ class config(osv.osv):
try: try:
req = urllib2.Request( req = urllib2.Request(
'https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/batch?%s' % (spreadsheet_key, urllib.urlencode({'v': 3, 'access_token': access_token})), 'https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/batch?%s' % (spreadsheet_key, werkzeug.url_encode({'v': 3, 'access_token': access_token})),
data=request, data=request,
headers={'content-type': 'application/atom+xml', 'If-Match': '*'}) headers={'content-type': 'application/atom+xml', 'If-Match': '*'})
urllib2.urlopen(req) urllib2.urlopen(req)

View File

@ -2,7 +2,7 @@
import datetime import datetime
import logging import logging
import sys import sys
import urllib import werkzeug.urls
import urllib2 import urllib2
import openerp import openerp
@ -59,7 +59,7 @@ def get_sys_logs(self, cr, uid):
add_arg = {"timeout":30} if sys.version_info >= (2,6) else {} add_arg = {"timeout":30} if sys.version_info >= (2,6) else {}
arguments = {'arg0': msg, "action": "update",} arguments = {'arg0': msg, "action": "update",}
arguments_raw = urllib.urlencode(arguments) arguments_raw = werkzeug.url_encode(arguments)
url = config.get("publisher_warranty_url") url = config.get("publisher_warranty_url")

View File

@ -1,7 +1,7 @@
"""Module to talk to EtherpadLite API.""" """Module to talk to EtherpadLite API."""
import json import json
import urllib import werkzeug.urls
import urllib2 import urllib2
@ -32,7 +32,7 @@ class EtherpadLiteClient:
params = arguments or {} params = arguments or {}
params.update({'apikey': self.apiKey}) params.update({'apikey': self.apiKey})
data = urllib.urlencode(params, True) data = werkzeug.url_encode(params, True)
try: try:
opener = urllib2.build_opener() opener = urllib2.build_opener()

View File

@ -6,7 +6,6 @@ except ImportError:
import json import json
import logging import logging
import pprint import pprint
import urllib
import urllib2 import urllib2
import werkzeug import werkzeug
@ -41,7 +40,7 @@ class PaypalController(http.Controller):
Once data is validated, process it. """ Once data is validated, process it. """
res = False res = False
new_post = dict(post, cmd='_notify-validate') new_post = dict(post, cmd='_notify-validate')
urequest = urllib2.Request("https://www.sandbox.paypal.com/cgi-bin/webscr", urllib.urlencode(new_post)) urequest = urllib2.Request("https://www.sandbox.paypal.com/cgi-bin/webscr", werkzeug.url_encode(new_post))
uopen = urllib2.urlopen(urequest) uopen = urllib2.urlopen(urequest)
resp = uopen.read() resp = uopen.read()
if resp == 'VERIFIED': if resp == 'VERIFIED':

View File

@ -7,7 +7,7 @@ except ImportError:
import json import json
import logging import logging
import urlparse import urlparse
import urllib import werkzeug.urls
import urllib2 import urllib2
from openerp.addons.payment.models.payment_acquirer import ValidationError from openerp.addons.payment.models.payment_acquirer import ValidationError
@ -134,7 +134,7 @@ class AcquirerPaypal(osv.Model):
password manager password manager
""" """
res = dict.fromkeys(ids, False) res = dict.fromkeys(ids, False)
parameters = urllib.urlencode({'grant_type': 'client_credentials'}) parameters = werkzeug.url_encode({'grant_type': 'client_credentials'})
for acquirer in self.browse(cr, uid, ids, context=context): for acquirer in self.browse(cr, uid, ids, context=context):
tx_url = self._get_paypal_urls(cr, uid, acquirer.env)['paypal_rest_url'] tx_url = self._get_paypal_urls(cr, uid, acquirer.env)['paypal_rest_url']

View File

@ -279,7 +279,7 @@ class website(osv.osv):
def get_url(page): def get_url(page):
_url = "%spage/%s/" % (url, page) _url = "%spage/%s/" % (url, page)
if url_args: if url_args:
_url = "%s?%s" % (_url, urllib.urlencode(url_args)) _url = "%s?%s" % (_url, werkzeug.url_encode(url_args))
return _url return _url
return { return {
@ -446,7 +446,7 @@ class website(osv.osv):
get_args.setdefault('kanban', "") get_args.setdefault('kanban', "")
kanban = get_args.pop('kanban') kanban = get_args.pop('kanban')
kanban_url = "?%s&kanban=" % urllib.urlencode(get_args) kanban_url = "?%s&kanban=" % werkzeug.url_encode(get_args)
pages = {} pages = {}
for col in kanban.split(","): for col in kanban.split(","):

View File

@ -4,6 +4,7 @@ import urllib
import urlparse import urlparse
import unittest2 import unittest2
import urllib2 import urllib2
import werkzeug.urls
import lxml.html import lxml.html
@ -70,7 +71,7 @@ class CrawlSuite(unittest2.TestSuite):
if user is not None: if user is not None:
url = 'http://localhost:{port}/login?{query}'.format( url = 'http://localhost:{port}/login?{query}'.format(
port=tools.config['xmlrpc_port'], port=tools.config['xmlrpc_port'],
query=urllib.urlencode({ query=werkzeug.url_encode({
'db': tools.config['db_name'], 'db': tools.config['db_name'],
'login': user, 'login': user,
'key': password, 'key': password,

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import urllib import werkzeug.urls
import openerp import openerp
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
@ -89,7 +89,7 @@ class WebsiteCrmPartnerAssign(http.Controller):
'google_map_partner_ids': google_map_partner_ids, 'google_map_partner_ids': google_map_partner_ids,
'pager': pager, 'pager': pager,
'searches': post, 'searches': post,
'search_path': "?%s" % urllib.urlencode(post), 'search_path': "?%s" % werkzeug.url_encode(post),
} }
return request.website.render("website_crm_partner_assign.index", values) return request.website.render("website_crm_partner_assign.index", values)

View File

@ -6,7 +6,7 @@ from openerp.addons.web import http
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website_partner.controllers import main as website_partner from openerp.addons.website_partner.controllers import main as website_partner
import urllib import werkzeug.urls
class WebsiteCustomer(http.Controller): class WebsiteCustomer(http.Controller):
@ -71,7 +71,7 @@ class WebsiteCustomer(http.Controller):
'google_map_partner_ids': google_map_partner_ids, 'google_map_partner_ids': google_map_partner_ids,
'pager': pager, 'pager': pager,
'post': post, 'post': post,
'search_path': "?%s" % urllib.urlencode(post), 'search_path': "?%s" % werkzeug.url_encode(post),
} }
return request.website.render("website_customer.index", values) return request.website.render("website_customer.index", values)

View File

@ -30,7 +30,7 @@ controllers = controllers()
from datetime import datetime, timedelta from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from openerp import tools from openerp import tools
import urllib import werkzeug.urls
class website_event(http.Controller): class website_event(http.Controller):
@http.route(['/event/', '/event/page/<int:page>'], type='http', auth="public", website=True, multilang=True) @http.route(['/event/', '/event/page/<int:page>'], type='http', auth="public", website=True, multilang=True)
@ -155,7 +155,7 @@ class website_event(http.Controller):
'countries': countries, 'countries': countries,
'pager': pager, 'pager': pager,
'searches': searches, 'searches': searches,
'search_path': "?%s" % urllib.urlencode(searches), 'search_path': "?%s" % werkzeug.url_encode(searches),
} }
return request.website.render("website_event.index", values) return request.website.render("website_event.index", values)

View File

@ -7,7 +7,7 @@ from openerp.addons.web.http import request
from openerp.addons.website_partner.controllers import main as website_partner from openerp.addons.website_partner.controllers import main as website_partner
from openerp.tools.translate import _ from openerp.tools.translate import _
import urllib import werkzeug.urls
class WebsiteMembership(http.Controller): class WebsiteMembership(http.Controller):
@ -87,7 +87,7 @@ class WebsiteMembership(http.Controller):
'google_map_partner_ids': google_map_partner_ids, 'google_map_partner_ids': google_map_partner_ids,
'pager': pager, 'pager': pager,
'post': post, 'post': post,
'search': "?%s" % urllib.urlencode(post), 'search': "?%s" % werkzeug.url_encode(post),
} }
return request.website.render("website_membership.index", values) return request.website.render("website_membership.index", values)

View File

@ -1,7 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import random import random
import simplejson import simplejson
import urllib
import werkzeug import werkzeug
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
@ -634,7 +633,7 @@ class Ecommerce(http.Controller):
}) })
acquirer_form_post_url = payment_obj.get_form_action_url(cr, uid, acquirer_id, context=context) acquirer_form_post_url = payment_obj.get_form_action_url(cr, uid, acquirer_id, context=context)
acquirer_total_url = '%s?%s' % (acquirer_form_post_url, urllib.urlencode(post)) acquirer_total_url = '%s?%s' % (acquirer_form_post_url, werkzeug.url_encode(post))
return request.redirect(acquirer_total_url) return request.redirect(acquirer_total_url)
@http.route('/shop/payment/get_status/<int:sale_order_id>', type='json', auth="public", website=True, multilang=True) @http.route('/shop/payment/get_status/<int:sale_order_id>', type='json', auth="public", website=True, multilang=True)