fix iteritems, enabled test_cache & test_dal for 3.5

This commit is contained in:
ilvalle
2016-06-02 17:21:36 +02:00
parent 707330accd
commit db8306b5c4
10 changed files with 27 additions and 25 deletions

View File

@@ -11,6 +11,7 @@ HTTP statuses helpers
"""
import re
from gluon._compat import iteritems
__all__ = ['HTTP', 'redirect']
@@ -112,7 +113,7 @@ class HTTP(Exception):
if isinstance(body, str):
headers['Content-Length'] = len(body)
rheaders = []
for k, v in headers.iteritems():
for k, v in iteritems(headers):
if isinstance(v, list):
rheaders += [(k, str(item)) for item in v]
elif not v is None:

View File

@@ -18,7 +18,7 @@ import pkgutil
import logging
from cgi import escape
from threading import RLock
from gluon._compat import copyreg, PY2, maketrans, iterkeys, unicodeT, to_unicode, to_bytes
from gluon._compat import copyreg, PY2, maketrans, iterkeys, unicodeT, to_unicode, to_bytes, iteritems
from gluon.portalocker import read_locked, LockedFile
from gluon.utf8 import Utf8
@@ -756,7 +756,7 @@ class translator(object):
if isinstance(symbols, dict):
symbols.update(
(key, xmlescape(value).translate(ttab_in))
for key, value in symbols.iteritems()
for key, value in iteritems(symbols)
if not isinstance(value, NUMBERS))
else:
if not isinstance(symbols, tuple):
@@ -939,7 +939,7 @@ class translator(object):
if isinstance(symbols, dict):
symbols.update(
(key, str(value).translate(ttab_in))
for key, value in symbols.iteritems()
for key, value in iteritems(symbols)
if not isinstance(value, NUMBERS))
else:
if not isinstance(symbols, tuple):

View File

@@ -11,6 +11,7 @@ import errno
import socket
import logging
import platform
from gluon._compat import iteritems
# Define Constants
VERSION = '1.2.6'
@@ -1430,7 +1431,7 @@ class Worker(Thread):
raise BadRequest
req = match.groupdict()
for k, v in req.iteritems():
for k, v in iteritems(req):
if not v:
req[k] = ""
if k == 'path':
@@ -1654,7 +1655,7 @@ class WSGIWorker(Worker):
environ = self.base_environ.copy()
# Grab the headers
for k, v in self.read_headers(sock_file).iteritems():
for k, v in iteritems(self.read_headers(sock_file)):
environ[str('HTTP_' + k)] = v
# Add CGI Variables

View File

@@ -9,7 +9,7 @@ Background processes made simple
---------------------------------
"""
from __future__ import print_function
from gluon._compat import Queue, long
from gluon._compat import Queue, long, iteritems
import os
import time
@@ -234,7 +234,7 @@ def _decode_list(lst):
def _decode_dict(dct):
newdict = {}
for k, v in dct.iteritems():
for k, v in iteritems(dct):
if isinstance(k, unicode):
k = k.encode('utf-8')
if isinstance(v, unicode):

View File

@@ -30,6 +30,7 @@ from gluon.globals import Request, Response, Session
from gluon.storage import Storage, List
from gluon.admin import w2p_unpack
from pydal.base import BaseAdapter
from gluon._compat import iteritems
logger = logging.getLogger("web2py")
@@ -146,7 +147,7 @@ def env(
path_info = '%s/%s' % (path_info, '/'.join(request.args))
if request.vars:
vars = ['%s=%s' % (k, v) if v else '%s' % k
for (k, v) in request.vars.iteritems()]
for (k, v) in iteritems(request.vars)]
path_info = '%s?%s' % (path_info, '&'.join(vars))
request.env.path_info = path_info

View File

@@ -19,7 +19,7 @@ import urllib
import re
import os
from gluon._compat import StringIO, unichr, urllib_quote
from gluon._compat import StringIO, unichr, urllib_quote, iteritems
from gluon.http import HTTP, redirect
from gluon.html import XmlComponent, truncate_string
from gluon.html import XML, SPAN, TAG, A, DIV, CAT, UL, LI, TEXTAREA, BR, IMG
@@ -2222,7 +2222,7 @@ class SQLFORM(FORM):
if fields:
# add missing tablename to virtual fields
for table in tables:
for k, f in table.iteritems():
for k, f in iteritems(table):
if isinstance(f, Field.Virtual):
f.tablename = table._tablename
columns = [f for f in fields if f.tablename in tablenames]
@@ -2234,7 +2234,7 @@ class SQLFORM(FORM):
for table in tables:
fields += filter(filter1, table)
columns += filter(filter2, table)
for k, f in table.iteritems():
for k, f in iteritems(table):
if not k.startswith('_'):
if isinstance(f, Field.Virtual) and f.readable:
f.tablename = table._tablename
@@ -2434,7 +2434,7 @@ class SQLFORM(FORM):
selectable_columns.append(str(field))
# look for virtual fields not displayed (and virtual method
# fields to be added here?)
for (field_name, field) in table.iteritems():
for (field_name, field) in iteritems(table):
if isinstance(field, Field.Virtual) and not str(field) in expcolumns:
expcolumns.append(str(field))

View File

@@ -6,10 +6,11 @@ from .test_fileutils import *
from .test_globals import *
from .test_recfile import *
from .test_storage import *
from .test_dal import *
from .test_cache import *
if sys.version[:3] == '2.7':
from .test_cache import *
from .test_compileapp import *
from .test_html import *
from .test_is_url import *
@@ -20,7 +21,6 @@ if sys.version[:3] == '2.7':
from .test_template import *
from .test_validators import *
from .test_utils import *
from .test_dal import *
from .test_tools import *
from .test_appadmin import *
from .test_scheduler import *

View File

@@ -34,7 +34,7 @@ class TestDALSubclass(unittest.TestCase):
db.close()
def testSerialization(self):
import pickle
from gluon._compat import pickle
db = DAL(check_reserved=['all'])
db.define_table('t_a', Field('f_a'))
db.t_a.insert(f_a='test')

View File

@@ -13,7 +13,7 @@ Auth, Mail, PluginManager and various utilities
import base64
from functools import reduce
from gluon._compat import pickle, thread, urllib2, Cookie, StringIO, configparser, MIMEBase, MIMEMultipart, \
MIMEText, Encoders, Charset, long, urllib_quote
MIMEText, Encoders, Charset, long, urllib_quote, iteritems
import datetime
import logging
import sys
@@ -744,7 +744,7 @@ class Mail(object):
to.extend(bcc)
payload['Subject'] = encoded_or_raw(subject.decode(encoding))
payload['Date'] = email.utils.formatdate()
for k, v in headers.iteritems():
for k, v in iteritems(headers):
payload[k] = encoded_or_raw(v.decode(encoding))
result = {}
try:
@@ -1230,7 +1230,7 @@ class AuthJWT(object):
self.header_prefix = header_prefix
self.jwt_add_header = jwt_add_header or {}
base_header = {'alg': self.algorithm, 'typ': 'JWT'}
for k, v in self.jwt_add_header.iteritems():
for k, v in iteritems(self.jwt_add_header):
base_header[k] = v
self.cached_b64h = self.jwt_b64e(json.dumps(base_header))
digestmod_mapping = {
@@ -5879,7 +5879,7 @@ class Service(object):
prefix='pys',
documentation=documentation,
ns=True)
for method, (function, returns, args, doc) in procedures.iteritems():
for method, (function, returns, args, doc) in iteritems(procedures):
dispatcher.register_function(method, function, returns, args, doc)
if request.env.request_method == 'POST':
fault = {}

View File

@@ -11,7 +11,7 @@ Utilities and class for UTF8 strings managing
----------------------------------------------
"""
from __future__ import print_function
from gluon._compat import builtin as __builtin__, unicodeT
from gluon._compat import builtin as __builtin__, unicodeT, iteritems
__all__ = ['Utf8']
@@ -339,9 +339,8 @@ class Utf8(str):
s, 'utf-8') if isinstance(s, str) else s for s in args]
kwargs = dict((unicode(k, 'utf-8') if isinstance(k, str) else k,
unicode(v, 'utf-8') if isinstance(v, str) else v)
for k, v in kwargs.iteritems())
return str.__new__(Utf8, unicode(self, 'utf-8').
format(*args, **kwargs).encode('utf-8'))
for k, v in iteritems(kwargs))
return str.__new__(Utf8, unicode(self, 'utf-8').format(*args, **kwargs).encode('utf-8'))
def __mod__(self, right):
if isinstance(right, tuple):
@@ -350,7 +349,7 @@ class Utf8(str):
elif isinstance(right, dict):
right = dict((unicode(k, 'utf-8') if isinstance(k, str) else k,
unicode(v, 'utf-8') if isinstance(v, str) else v)
for k, v in right.iteritems())
for k, v in iteritems(right))
elif isinstance(right, str):
right = unicode(right, 'utf-8')
return str.__new__(Utf8, unicode(self, 'utf-8').__mod__(right).encode('utf-8'))