[tryton-debian-vcs] tryton-proteus branch upstream updated. upstream/3.8.1-1-gd17c980

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Thu Jun 2 16:29:48 UTC 2016


The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-proteus.git;a=commitdiff;h=upstream/3.8.1-1-gd17c980

commit d17c980ba117d33763d97bb239278ee86924d129
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri May 27 18:26:26 2016 +0200

    Adding upstream version 4.0.0.
    
    Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>

diff --git a/CHANGELOG b/CHANGELOG
index f00fe39..adcd04d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
-Version 3.8.1 - 2016-01-11
+Version 4.0.0 - 2016-05-02
 * Bug fixes (see mercurial logs for details)
+* Add Python3 support
 
 Version 3.8.0 - 2015-11-02
 * Bug fixes (see mercurial logs for details)
diff --git a/COPYRIGHT b/COPYRIGHT
index 674c885..29bd825 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,5 +1,5 @@
-Copyright (C) 2010-2015 Cédric Krier.
-Copyright (C) 2010-2015 B2CK SPRL.
+Copyright (C) 2010-2016 Cédric Krier.
+Copyright (C) 2010-2016 B2CK SPRL.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
diff --git a/PKG-INFO b/PKG-INFO
index 8be1447..79d83d5 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: proteus
-Version: 3.8.1
+Version: 4.0.0
 Summary: Library to access Tryton server as a client
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: LGPL-3
-Download-URL: http://downloads.tryton.org/3.8/
+Download-URL: http://downloads.tryton.org/4.0/
 Description: proteus
         =======
         
@@ -152,6 +152,9 @@ Classifier: Intended Audience :: Legal Industry
 Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/proteus.egg-info/PKG-INFO b/proteus.egg-info/PKG-INFO
index 8be1447..79d83d5 100644
--- a/proteus.egg-info/PKG-INFO
+++ b/proteus.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: proteus
-Version: 3.8.1
+Version: 4.0.0
 Summary: Library to access Tryton server as a client
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: LGPL-3
-Download-URL: http://downloads.tryton.org/3.8/
+Download-URL: http://downloads.tryton.org/4.0/
 Description: proteus
         =======
         
@@ -152,6 +152,9 @@ Classifier: Intended Audience :: Legal Industry
 Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/proteus.egg-info/requires.txt b/proteus.egg-info/requires.txt
index b8145a5..4e8fa73 100644
--- a/proteus.egg-info/requires.txt
+++ b/proteus.egg-info/requires.txt
@@ -3,8 +3,8 @@ python-dateutil
 [cdecimal]
 cdecimal
 
-[trytond]
-trytond >= 3.8, < 3.9
-
 [simplejson]
-simplejson
\ No newline at end of file
+simplejson
+
+[trytond]
+trytond >= 4.0, < 4.1
diff --git a/proteus/__init__.py b/proteus/__init__.py
index dc1906d..a9b904d 100644
--- a/proteus/__init__.py
+++ b/proteus/__init__.py
@@ -3,7 +3,7 @@
 '''
 A library to access Tryton's models like a client.
 '''
-__version__ = "3.8.1"
+__version__ = "4.0.0"
 __all__ = ['Model', 'Wizard', 'Report']
 import sys
 try:
@@ -18,7 +18,6 @@ import threading
 import datetime
 import functools
 from decimal import Decimal
-from types import NoneType
 
 import proteus.config
 
@@ -159,14 +158,14 @@ class BinaryDescriptor(FieldDescriptor):
 class IntegerDescriptor(FieldDescriptor):
 
     def __set__(self, instance, value):
-        assert isinstance(value, (int, long, NoneType))
+        assert isinstance(value, (int, long, type(None)))
         super(IntegerDescriptor, self).__set__(instance, value)
 
 
 class FloatDescriptor(FieldDescriptor):
 
     def __set__(self, instance, value):
-        assert isinstance(value, (int, long, float, Decimal, NoneType))
+        assert isinstance(value, (int, long, float, Decimal, type(None)))
         if value is not None:
             value = float(value)
         super(FloatDescriptor, self).__set__(instance, value)
@@ -175,7 +174,7 @@ class FloatDescriptor(FieldDescriptor):
 class NumericDescriptor(FieldDescriptor):
 
     def __set__(self, instance, value):
-        assert isinstance(value, (NoneType, Decimal))
+        assert isinstance(value, (type(None), Decimal))
         # TODO add digits validation
         super(NumericDescriptor, self).__set__(instance, value)
 
@@ -192,7 +191,7 @@ class ReferenceDescriptor(FieldDescriptor):
         return value
 
     def __set__(self, instance, value):
-        assert isinstance(value, (Model, NoneType, basestring))
+        assert isinstance(value, (Model, type(None), basestring))
         if isinstance(value, basestring):
             assert value.startswith(',')
         elif isinstance(value, Model):
@@ -254,7 +253,7 @@ class Many2OneDescriptor(FieldDescriptor):
         return value
 
     def __set__(self, instance, value):
-        assert isinstance(value, (Model, NoneType))
+        assert isinstance(value, (Model, type(None)))
         if value:
             assert value._config == instance._config
         super(Many2OneDescriptor, self).__set__(instance, value)
@@ -661,7 +660,7 @@ class Model(object):
     @classmethod
     def get(cls, name, config=None):
         'Get a class for the named Model'
-        if isinstance(name, unicode):
+        if (bytes == str) and isinstance(name, unicode):
             name = name.encode('utf-8')
 
         class Spam(Model):
@@ -692,14 +691,17 @@ class Model(object):
                 repr(self._config), self.id)
     __repr__.__doc__ = object.__repr__.__doc__
 
-    def __cmp__(self, other):
-        'Compare with other'
+    def __eq__(self, other):
         if isinstance(other, Model):
-            return cmp((self.__class__.__name__, self.id),
+            return ((self.__class__.__name__, self.id) ==
                 (other.__class__.__name__, other.id))
-        if isinstance(other, (bool, NoneType)):
-            return 1
-        raise NotImplementedError
+        return NotImplemented
+
+    def __ne__(self, other):
+        return not self == other
+
+    def __hash__(self):
+        return hash(self.__class__.__name__) ^ hash(self.id)
 
     @property
     def id(self):
@@ -1074,7 +1076,7 @@ class Wizard(object):
                 ctx['active_ids'] = None
                 ctx['active_model'] = None
             if self.action:
-                ctx['action_id'] = self.action.id
+                ctx['action_id'] = self.action['id']
             else:
                 ctx['action_id'] = None
 
@@ -1096,7 +1098,6 @@ class Wizard(object):
                 self.form._default_set(view['defaults'])
                 self.states = [b['state'] for b in view['buttons']]
                 self.form_state = view['state']
-                return
             else:
                 self.state = self.end_state
 
@@ -1107,6 +1108,9 @@ class Wizard(object):
                 if proteus_action:
                     self.actions.append(proteus_action)
 
+            if 'view' in result:
+                return
+
         if self.state == self.end_state:
             self._proxy.delete(self.session_id, self._config.context)
             if self.models:
diff --git a/proteus/config.py b/proteus/config.py
index 6a58069..967a152 100644
--- a/proteus/config.py
+++ b/proteus/config.py
@@ -181,7 +181,7 @@ class _TrytondMethod(object):
                     result = [rpc.result(meth(i, *args, **kwargs))
                         for i in inst]
             if not rpc.readonly:
-                transaction.cursor.commit()
+                transaction.commit()
             Cache.resets(self._config.database_name)
         return result
 
diff --git a/proteus/tests/common.py b/proteus/tests/common.py
index f075a20..dcbcc24 100644
--- a/proteus/tests/common.py
+++ b/proteus/tests/common.py
@@ -9,7 +9,10 @@ from proteus import config
 
 class ProteusTestCase(TestCase):
 
-    def setUp(self):
+    @classmethod
+    def setUpClass(cls):
         if not db_exist():
             create_db()
+
+    def setUp(self):
         self.config = config.set_trytond()
diff --git a/proteus/tests/test_config.py b/proteus/tests/test_config.py
index 78de2f6..d6420a7 100644
--- a/proteus/tests/test_config.py
+++ b/proteus/tests/test_config.py
@@ -26,7 +26,7 @@ class TestConfig(ProteusTestCase):
         self.assertRaises(NotImplementedError, config1.__eq__, None)
 
     def test_repr(self):
-        config = proteus.config.TrytondConfig()
+        config = proteus.config.TrytondConfig('sqlite:///:memory:')
         self.assertEqual(repr(config),
             "proteus.config.TrytondConfig("
             "'sqlite:///:memory:', 'admin', config_file=None)")
diff --git a/proteus/tests/test_model.py b/proteus/tests/test_model.py
index a07ed35..627bdfd 100644
--- a/proteus/tests/test_model.py
+++ b/proteus/tests/test_model.py
@@ -233,21 +233,22 @@ class TestModel(ProteusTestCase):
         self.assertEqual(test.groups, [])
         self.assertEqual(len(Group.find([('id', '=', group_id)])), 0)
 
-    def test_cmp(self):
+    def test_eq(self):
         User = Model.get('res.user')
         test = User()
-        test.name = 'Test cmp'
-        test.login = 'test_cmp'
+        test.name = 'Test eq'
+        test.login = 'test_eq'
         test.save()
         admin1 = User.find([('login', '=', 'admin')])[0]
         admin2 = User.find([('login', '=', 'admin')])[0]
 
         self.assertEqual(admin1, admin2)
+        self.assertFalse(admin1 != admin2)
         self.assertNotEqual(admin1, test)
+        self.assertFalse(admin1 == test)
         self.assertNotEqual(admin1, None)
         self.assertNotEqual(admin1, False)
-
-        self.assertRaises(NotImplementedError, lambda: admin1 == 1)
+        self.assertNotEqual(admin1, 1)
 
     def test_default_set(self):
         User = Model.get('res.user')
diff --git a/proteus/tests/test_wizard.py b/proteus/tests/test_wizard.py
index d2c384f..7edf200 100644
--- a/proteus/tests/test_wizard.py
+++ b/proteus/tests/test_wizard.py
@@ -46,3 +46,8 @@ class TestWizard(ProteusTestCase):
         self.assertEqual(len(print_model_graph.actions), 0)
         print_model_graph.execute('update')
         self.assertEqual(len(print_model_graph.actions), 1)
+
+    def test_configuration_wizard(self):
+        config_wizard = Wizard('ir.module.config_wizard')
+        config_wizard.execute('action')
+        self.assertTrue(config_wizard.actions)
diff --git a/setup.py b/setup.py
index 235a7dd..7846c4e 100644
--- a/setup.py
+++ b/setup.py
@@ -3,11 +3,19 @@
 # this repository contains the full copyright notices and license terms.
 from setuptools import setup, find_packages
 import os
-import proteus
+import re
+import io
 
 
 def read(fname):
-    return open(os.path.join(os.path.dirname(__file__), fname)).read()
+    return io.open(
+        os.path.join(os.path.dirname(__file__), fname),
+        'r', encoding='utf-8').read()
+
+
+def get_version():
+    init = read(os.path.join('proteus', '__init__.py'))
+    return re.search('__version__ = "([0-9.]*)"', init).group(1)
 
 
 def get_require_version(name):
@@ -20,7 +28,7 @@ def get_require_version(name):
     return require
 
 name = 'proteus'
-version = proteus.__version__
+version = get_version()
 major_version, minor_version, _ = version.split('.', 2)
 major_version = int(major_version)
 minor_version = int(minor_version)
@@ -58,6 +66,9 @@ setup(name=name,
         'GNU Library or Lesser General Public License (LGPL)',
         'Operating System :: OS Independent',
         'Programming Language :: Python :: 2.7',
+        'Programming Language :: Python :: 3.3',
+        'Programming Language :: Python :: 3.4',
+        'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Office/Business',
@@ -77,4 +88,5 @@ setup(name=name,
     test_suite='proteus.tests',
     tests_require=[get_require_version('trytond'),
         get_require_version('trytond_party')],
+    use_2to3=True,
     )
-- 
tryton-proteus



More information about the tryton-debian-vcs mailing list