diff --git a/appveyor.yml b/appveyor.yml index dde913d4..018e80eb 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,6 +10,10 @@ environment: COVERAGE_PROCESS_START: gluon/tests/coverage.ini PYTHON_ARCH: "64" + - PYTHON: "C:/Python36" + COVERAGE_PROCESS_START: gluon/tests/coverage.ini + PYTHON_ARCH: "64" + clone_depth: 50 init: @@ -20,7 +24,6 @@ install: - python -m ensurepip - pip install codecov - git submodule update --init --recursive - - pip install pycrypto # Check that we have the expected version and architecture for Python - "python --version" - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" diff --git a/gluon/_compat.py b/gluon/_compat.py index d8b7a495..b3b82ad5 100644 --- a/gluon/_compat.py +++ b/gluon/_compat.py @@ -26,7 +26,7 @@ if PY2: from email.MIMEText import MIMEText from email.Charset import add_charset, QP as charset_QP from urllib import FancyURLopener, urlencode, urlopen - from urllib import quote as urllib_quote, unquote as urllib_unquote + from urllib import quote as urllib_quote, unquote as urllib_unquote, quote_plus as urllib_quote_plus from string import maketrans from types import ClassType import cgi @@ -96,7 +96,7 @@ else: from email.header import Header from email.charset import Charset, add_charset, QP as charset_QP from urllib.request import FancyURLopener, urlopen - from urllib.parse import quote as urllib_quote, unquote as urllib_unquote, urlencode + from urllib.parse import quote as urllib_quote, unquote as urllib_unquote, urlencode, quote_plus as urllib_quote_plus from http import cookiejar as cookielib from xmlrpc.client import ProtocolError import html # warning, this is the python3 module and not the web2py html module diff --git a/gluon/rewrite.py b/gluon/rewrite.py index fa4ac972..31e1bd16 100644 --- a/gluon/rewrite.py +++ b/gluon/rewrite.py @@ -22,12 +22,11 @@ import re import logging import traceback import threading -import urllib from gluon.storage import Storage, List from gluon.http import HTTP from gluon.fileutils import abspath, read_file from gluon.settings import global_settings -from gluon._compat import urllib_unquote, urllib_quote, iteritems, xrange +from gluon._compat import urllib_unquote, urllib_quote, iteritems, xrange, urllib_quote_plus isdir = os.path.isdir isfile = os.path.isfile @@ -235,7 +234,7 @@ def try_rewrite_on_error(http_response, request, environ, ticket=None): path_info, query_string = uri, '' query_string += \ 'code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \ - (status, ticket, urllib.quote_plus( + (status, ticket, urllib_quote_plus( request.env.request_uri), request.url) if uri.startswith('http://') or uri.startswith('https://'): # make up a response @@ -270,12 +269,12 @@ def try_redirect_on_error(http_object, request, ticket=None): elif '?' in redir: url = '%s&code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \ (redir, status, ticket, - urllib.quote_plus(request.env.request_uri), + urllib_quote_plus(request.env.request_uri), request.url) else: url = '%s?code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \ (redir, status, ticket, - urllib.quote_plus(request.env.request_uri), + urllib_quote_plus(request.env.request_uri), request.url) return HTTP(303, 'You are being redirected here' % url, Location=url) return http_object