summaryrefslogtreecommitdiff
path: root/odoo/addons
diff options
context:
space:
mode:
authorxmo-odoo <xmo@odoo.com>2017-04-27 13:59:33 +0200
committerGitHub <noreply@github.com>2017-04-27 13:59:33 +0200
commit2e6a589f417af48e3322955ffff6e94b6d8a24e3 (patch)
treeaa613ecc1f74a9531a03de89aa2bdc7bb32eed3b /odoo/addons
parentde4a2216b953abb86094c9bfa5f45b1eaaa79d3d (diff)
[FIX] builtins removed from Python 3
* Reverse wrapper courtesy of @rco-odoo's original P3 branch * thin compat module stripped down from werkzeug (to augment as needed) issue 8530
Diffstat (limited to 'odoo/addons')
-rw-r--r--odoo/addons/base/ir/ir_model.py3
-rw-r--r--odoo/addons/base/ir/ir_qweb/ir_qweb.py3
-rw-r--r--odoo/addons/base/ir/ir_qweb/qweb.py5
-rw-r--r--odoo/addons/base/ir/ir_translation.py3
-rw-r--r--odoo/addons/base/ir/ir_ui_menu.py4
-rw-r--r--odoo/addons/base/ir/ir_ui_view.py6
-rw-r--r--odoo/addons/base/res/ir_property.py3
-rw-r--r--odoo/addons/base/tests/test_api.py6
-rw-r--r--odoo/addons/base/tests/test_expression.py3
-rw-r--r--odoo/addons/base/tests/test_float.py13
-rw-r--r--odoo/addons/base/tests/test_ir_sequence.py4
-rw-r--r--odoo/addons/base/tests/test_ir_sequence_date_range.py8
-rw-r--r--odoo/addons/base/tests/test_misc.py4
-rw-r--r--odoo/addons/base/tests/test_orm.py4
-rw-r--r--odoo/addons/base/tests/test_res_config.py3
-rw-r--r--odoo/addons/test_limits/models.py4
-rw-r--r--odoo/addons/test_new_api/tests/test_attributes.py3
-rw-r--r--odoo/addons/test_pylint/tests/test_pylint.py15
18 files changed, 59 insertions, 35 deletions
diff --git a/odoo/addons/base/ir/ir_model.py b/odoo/addons/base/ir/ir_model.py
index 4c64a172057..79118c845f2 100644
--- a/odoo/addons/base/ir/ir_model.py
+++ b/odoo/addons/base/ir/ir_model.py
@@ -10,6 +10,7 @@ from odoo import api, fields, models, SUPERUSER_ID, tools, _
from odoo.exceptions import AccessError, UserError, ValidationError
from odoo.modules.registry import Registry
from odoo.osv import expression
+from odoo.tools import pycompat
from odoo.tools.safe_eval import safe_eval
_logger = logging.getLogger(__name__)
@@ -1055,7 +1056,7 @@ class IrModelAccess(models.Model):
else:
model_name = model
- if isinstance(group_ids, (int, long)):
+ if isinstance(group_ids, pycompat.integer_types):
group_ids = [group_ids]
query = """ SELECT 1 FROM ir_model_access a
diff --git a/odoo/addons/base/ir/ir_qweb/ir_qweb.py b/odoo/addons/base/ir/ir_qweb/ir_qweb.py
index dc71f3304ab..20a640be8d4 100644
--- a/odoo/addons/base/ir/ir_qweb/ir_qweb.py
+++ b/odoo/addons/base/ir/ir_qweb/ir_qweb.py
@@ -4,6 +4,7 @@ import ast
from urlparse import urlparse
from lxml import html
+from odoo.tools import pycompat
from .qweb import QWeb, Contextifier
from .assetsbundle import AssetsBundle
from lxml import etree
@@ -90,7 +91,7 @@ class IrQWeb(models.AbstractModel, QWeb):
view = self.env['ir.ui.view'].browse(view_id)
return view.inherit_id is not None
- if isinstance(name, (int, long)) or is_child_view(name):
+ if isinstance(name, pycompat.integer_types) or is_child_view(name):
for node in etree.fromstring(template):
if node.get('t-name'):
node.set('t-name', str(name))
diff --git a/odoo/addons/base/ir/ir_qweb/qweb.py b/odoo/addons/base/ir/ir_qweb/qweb.py
index 0c69bd90baa..a4204326344 100644
--- a/odoo/addons/base/ir/ir_qweb/qweb.py
+++ b/odoo/addons/base/ir/ir_qweb/qweb.py
@@ -11,6 +11,9 @@ from werkzeug.utils import escape as _escape
from itertools import chain, izip, tee
import __builtin__
from functools import reduce
+
+from odoo.tools import pycompat
+
builtin_defaults = {name: getattr(__builtin__, name) for name in dir(__builtin__)}
try:
@@ -160,7 +163,7 @@ def foreach_iterator(base_ctx, enum, name):
if not enum:
return
if isinstance(enum, int):
- enum = xrange(enum)
+ enum = pycompat.range(enum)
size = None
if isinstance(enum, Sized):
ctx["%s_size" % name] = size = len(enum)
diff --git a/odoo/addons/base/ir/ir_translation.py b/odoo/addons/base/ir/ir_translation.py
index bf580bbf3bf..7d73f40d65b 100644
--- a/odoo/addons/base/ir/ir_translation.py
+++ b/odoo/addons/base/ir/ir_translation.py
@@ -8,6 +8,7 @@ from difflib import get_close_matches
from odoo import api, fields, models, tools, SUPERUSER_ID, _
from odoo.exceptions import AccessError, UserError, ValidationError
from odoo.modules import get_module_path, get_module_resource
+from odoo.tools import pycompat
_logger = logging.getLogger(__name__)
@@ -395,7 +396,7 @@ class IrTranslation(models.Model):
if isinstance(types, basestring):
types = (types,)
if res_id:
- if isinstance(res_id, (int, long)):
+ if isinstance(res_id, pycompat.integer_types):
res_id = (res_id,)
else:
res_id = tuple(res_id)
diff --git a/odoo/addons/base/ir/ir_ui_menu.py b/odoo/addons/base/ir/ir_ui_menu.py
index 15ba7509700..c8a39322835 100644
--- a/odoo/addons/base/ir/ir_ui_menu.py
+++ b/odoo/addons/base/ir/ir_ui_menu.py
@@ -133,9 +133,9 @@ class IrUiMenu(models.Model):
if not self._context.get('ir.ui.menu.full_list'):
menus = menus._filter_visible_menus()
if offset:
- menus = menus[long(offset):]
+ menus = menus[offset:]
if limit:
- menus = menus[:long(limit)]
+ menus = menus[:limit]
return len(menus) if count else menus
@api.multi
diff --git a/odoo/addons/base/ir/ir_ui_view.py b/odoo/addons/base/ir/ir_ui_view.py
index 729d4a8364d..c557d15ee6b 100644
--- a/odoo/addons/base/ir/ir_ui_view.py
+++ b/odoo/addons/base/ir/ir_ui_view.py
@@ -22,7 +22,7 @@ from odoo.exceptions import ValidationError
from odoo.http import request
from odoo.modules.module import get_resource_from_path, get_resource_path
from odoo.osv import orm
-from odoo.tools import config, graph, ConstantMapping, SKIPPED_ELEMENT_TYPES
+from odoo.tools import config, graph, ConstantMapping, SKIPPED_ELEMENT_TYPES, pycompat
from odoo.tools.convert import _fix_multiple_roots
from odoo.tools.parse_version import parse_version
from odoo.tools.safe_eval import safe_eval
@@ -944,7 +944,7 @@ actual arch.
view ID or an XML ID. Note that this method may be overridden for other
kinds of template values.
"""
- if isinstance(template, (int, long)):
+ if isinstance(template, pycompat.integer_types):
return template
if '.' not in template:
raise ValueError('Invalid template id: %r' % template)
@@ -1045,7 +1045,7 @@ actual arch.
@api.multi
def render(self, values=None, engine='ir.qweb'):
- assert isinstance(self.id, (int, long))
+ assert isinstance(self.id, pycompat.integer_types)
qcontext = dict(
env=self.env,
diff --git a/odoo/addons/base/res/ir_property.py b/odoo/addons/base/res/ir_property.py
index 4dcc33209f2..8e1b7eda860 100644
--- a/odoo/addons/base/res/ir_property.py
+++ b/odoo/addons/base/res/ir_property.py
@@ -5,6 +5,7 @@ from operator import itemgetter
from odoo import api, fields, models, _
from odoo.exceptions import UserError
+from odoo.tools import pycompat
TYPE2FIELD = {
'char': 'value_text',
@@ -70,7 +71,7 @@ class Property(models.Model):
if field == 'value_reference':
if isinstance(value, models.BaseModel):
value = '%s,%d' % (value._name, value.id)
- elif isinstance(value, (int, long)):
+ elif isinstance(value, pycompat.integer_types):
field_id = values.get('fields_id')
if not field_id:
if not prop:
diff --git a/odoo/addons/base/tests/test_api.py b/odoo/addons/base/tests/test_api.py
index cbb63daec59..8270d6086d5 100644
--- a/odoo/addons/base/tests/test_api.py
+++ b/odoo/addons/base/tests/test_api.py
@@ -2,7 +2,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
-from odoo.tools import mute_logger
+from odoo.tools import mute_logger, pycompat
from odoo.tests import common
from odoo.exceptions import AccessError
@@ -69,8 +69,8 @@ class TestAPI(common.TransactionCase):
self.cr.execute("SELECT COUNT(*) FROM res_partner WHERE active")
count1 = self.cr.fetchone()[0]
count2 = self.env['res.partner'].search([], count=True)
- self.assertIsInstance(count1, (int, long))
- self.assertIsInstance(count2, (int, long))
+ self.assertIsInstance(count1, pycompat.integer_types)
+ self.assertIsInstance(count2, pycompat.integer_types)
self.assertEqual(count1, count2)
@mute_logger('odoo.models')
diff --git a/odoo/addons/base/tests/test_expression.py b/odoo/addons/base/tests/test_expression.py
index 104c4a6dfe1..4dea4797b0c 100644
--- a/odoo/addons/base/tests/test_expression.py
+++ b/odoo/addons/base/tests/test_expression.py
@@ -214,9 +214,8 @@ class TestExpression(TransactionCase):
# create new company with partners, and partners with no company
company2 = self.env['res.company'].create({'name': 'Acme 2'})
- for i in xrange(4):
+ for i in range(4):
Partner.create({'name': 'P of Acme %s' % i, 'company_id': company2.id})
- for i in xrange(4):
Partner.create({'name': 'P of All %s' % i, 'company_id': False})
# check if many2one works with negative empty list
diff --git a/odoo/addons/base/tests/test_float.py b/odoo/addons/base/tests/test_float.py
index 03e15b5877e..8c4ee380bd2 100644
--- a/odoo/addons/base/tests/test_float.py
+++ b/odoo/addons/base/tests/test_float.py
@@ -4,7 +4,7 @@
from math import log10
from odoo.tests.common import TransactionCase
-from odoo.tools import float_compare, float_is_zero, float_repr, float_round, float_split_str
+from odoo.tools import float_compare, float_is_zero, float_repr, float_round, float_split_str, pycompat
class TestFloatPrecision(TransactionCase):
@@ -98,14 +98,13 @@ class TestFloatPrecision(TransactionCase):
precisions = [2, 2, 2, 2, 2, 2, 3, 4]
# Note: max precision for double floats is 53 bits of precision or
# 17 significant decimal digits
- for magnitude in range(7):
- for i in xrange(len(fractions)):
- frac, exp, prec = fractions[i], expecteds[i], precisions[i]
+ for magnitude in pycompat.range(7):
+ for frac, exp, prec in zip(fractions, expecteds, precisions):
for sign in [-1,1]:
- for x in xrange(0,10000,97):
- n = x * 10**magnitude
+ for x in pycompat.range(0, 10000, 97):
+ n = x * 10 ** magnitude
f = sign * (n + frac)
- f_exp = ('-' if f != 0 and sign == -1 else '') + str(n) + exp
+ f_exp = ('-' if f != 0 and sign == -1 else '') + str(n) + exp
try_round(f, f_exp, digits=prec)
def try_zero(amount, expected):
diff --git a/odoo/addons/base/tests/test_ir_sequence.py b/odoo/addons/base/tests/test_ir_sequence.py
index 76db66d7008..946043d9f4b 100644
--- a/odoo/addons/base/tests/test_ir_sequence.py
+++ b/odoo/addons/base/tests/test_ir_sequence.py
@@ -154,7 +154,7 @@ class TestIrSequenceGenerate(unittest.TestCase):
self.assertTrue(seq)
with environment() as env:
- for i in xrange(1, 10):
+ for i in range(1, 10):
n = env['ir.sequence'].next_by_code('test_sequence_type_5')
self.assertEqual(n, str(i))
@@ -169,7 +169,7 @@ class TestIrSequenceGenerate(unittest.TestCase):
self.assertTrue(seq)
with environment() as env:
- for i in xrange(1, 10):
+ for i in range(1, 10):
n = env['ir.sequence'].next_by_code('test_sequence_type_6')
self.assertEqual(n, str(i))
diff --git a/odoo/addons/base/tests/test_ir_sequence_date_range.py b/odoo/addons/base/tests/test_ir_sequence_date_range.py
index 147b0f26050..7bd43eb4ea9 100644
--- a/odoo/addons/base/tests/test_ir_sequence_date_range.py
+++ b/odoo/addons/base/tests/test_ir_sequence_date_range.py
@@ -116,16 +116,16 @@ class TestIrSequenceDateRangeChangeImplementation(SingleTransactionCase):
seq = self.env['ir.sequence']
seq16 = self.env['ir.sequence'].with_context({'ir_sequence_date': january(16)})
- for i in xrange(1, 5):
+ for i in range(1, 5):
n = seq.next_by_code('test_sequence_date_range_3')
self.assertEqual(n, str(i))
- for i in xrange(1, 5):
+ for i in range(1, 5):
n = seq16.next_by_code('test_sequence_date_range_3')
self.assertEqual(n, str(i))
- for i in xrange(1, 5):
+ for i in range(1, 5):
n = seq.next_by_code('test_sequence_date_range_4')
self.assertEqual(n, str(i))
- for i in xrange(1, 5):
+ for i in range(1, 5):
n = seq16.next_by_code('test_sequence_date_range_4')
self.assertEqual(n, str(i))
diff --git a/odoo/addons/base/tests/test_misc.py b/odoo/addons/base/tests/test_misc.py
index b8ede104a7c..c148b901982 100644
--- a/odoo/addons/base/tests/test_misc.py
+++ b/odoo/addons/base/tests/test_misc.py
@@ -16,14 +16,14 @@ class TestCountingStream(unittest.TestCase):
self.assertEqual(s.index, 0)
def test_single(self):
- s = misc.CountingStream(xrange(1))
+ s = misc.CountingStream(range(1))
self.assertEqual(s.index, -1)
self.assertEqual(next(s, None), 0)
self.assertIsNone(next(s, None))
self.assertEqual(s.index, 1)
def test_full(self):
- s = misc.CountingStream(xrange(42))
+ s = misc.CountingStream(range(42))
for _ in s:
pass
self.assertEqual(s.index, 42)
diff --git a/odoo/addons/base/tests/test_orm.py b/odoo/addons/base/tests/test_orm.py
index ef586218a0d..0da71a84ad5 100644
--- a/odoo/addons/base/tests/test_orm.py
+++ b/odoo/addons/base/tests/test_orm.py
@@ -5,7 +5,7 @@ from collections import defaultdict
from odoo.exceptions import AccessError, MissingError
from odoo.tests.common import TransactionCase
-from odoo.tools import mute_logger
+from odoo.tools import mute_logger, pycompat
class TestORM(TransactionCase):
@@ -193,7 +193,7 @@ class TestInherits(TransactionCase):
""" `default_get` cannot return a dictionary or a new id """
defaults = self.env['res.users'].default_get(['partner_id'])
if 'partner_id' in defaults:
- self.assertIsInstance(defaults['partner_id'], (bool, int, long))
+ self.assertIsInstance(defaults['partner_id'], (bool, pycompat.integer_types))
def test_create(self):
""" creating a user should automatically create a new partner """
diff --git a/odoo/addons/base/tests/test_res_config.py b/odoo/addons/base/tests/test_res_config.py
index af919ce4b66..89300bf43a5 100644
--- a/odoo/addons/base/tests/test_res_config.py
+++ b/odoo/addons/base/tests/test_res_config.py
@@ -3,6 +3,7 @@
from odoo import exceptions
from odoo.tests.common import TransactionCase
+from odoo.tools import pycompat
class TestResConfig(TransactionCase):
@@ -42,7 +43,7 @@ class TestResConfig(TransactionCase):
self.assertIsInstance(res, tuple)
self.assertEqual(len(res), 2, "The result should contain 2 elements")
self.assertIsInstance(res[0], basestring)
- self.assertIsInstance(res[1], (int, long))
+ self.assertIsInstance(res[1], pycompat.integer_types)
# Check returned values
self.assertEqual(res[0], self.expected_path)
diff --git a/odoo/addons/test_limits/models.py b/odoo/addons/test_limits/models.py
index f46402857cf..506578a811b 100644
--- a/odoo/addons/test_limits/models.py
+++ b/odoo/addons/test_limits/models.py
@@ -2,8 +2,10 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import time
+import sys
from odoo import models, api
+from odoo.tools import pycompat
class m(models.Model):
""" This model exposes a few methods that will consume between 'almost no
@@ -37,7 +39,7 @@ class m(models.Model):
t0 = time.clock()
t1 = time.clock()
while t1 - t0 < seconds:
- for i in xrange(10000000):
+ for i in pycompat.range(10000000):
x = i * i
t1 = time.clock()
return True
diff --git a/odoo/addons/test_new_api/tests/test_attributes.py b/odoo/addons/test_new_api/tests/test_attributes.py
index 636dadf2a06..b37afe7e30d 100644
--- a/odoo/addons/test_new_api/tests/test_attributes.py
+++ b/odoo/addons/test_new_api/tests/test_attributes.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
from odoo.tests import common
+from odoo.tools import pycompat
ANSWER_TO_ULTIMATE_QUESTION = 42
@@ -16,7 +17,7 @@ class TestAttributes(common.TransactionCase):
self.assertTrue(hasattr(instance, 'unknown'))
# Is it the right type ?
- self.assertIsInstance(instance.unknown, (int, long))
+ self.assertIsInstance(instance.unknown, pycompat.integer_types)
# Is it the right value, in case of, we don't know ;-)
self.assertEqual(instance.unknown, ANSWER_TO_ULTIMATE_QUESTION)
diff --git a/odoo/addons/test_pylint/tests/test_pylint.py b/odoo/addons/test_pylint/tests/test_pylint.py
index 38fa4c3d51a..02c1a14a261 100644
--- a/odoo/addons/test_pylint/tests/test_pylint.py
+++ b/odoo/addons/test_pylint/tests/test_pylint.py
@@ -25,6 +25,21 @@ class TestPyLint(TransactionCase):
'E0601', # using variable before assignment
'W0123', # eval used
'W0101', # unreachable code
+
+ 'long-suffix',
+ 'apply-builtin',
+ 'cmp-builtin',
+ 'coerce-builtin',
+ 'execfile-builtin',
+ 'input-builtin',
+ 'intern-builtin',
+ 'long-builtin',
+ 'raw_input-builtin',
+ 'reload-builtin',
+ 'xrange-builtin',
+ # TODO: enable once report has been removed
+ # 'file-builtin',
+ # 'reduce-builtin',
]
def _skip_test(self, reason):