2
from openerp.tests.common import TransactionCase
3
from anybox.recipe.openerp.runtime.session import Session
5
TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), 'data')
8
class VersionTestCase(TransactionCase):
11
super(VersionTestCase, self).setUp()
14
def initSession(self):
15
session = self.session = Session(None, None, parse_config=False)
16
session.registry = self.registry
18
session.uid = self.uid
19
session.buildout_dir = TEST_DATA_DIR
22
def test_version_class(self):
23
"""Test the version class itself.
25
This does not need a database, but still needs to import Openerp"""
26
version = self.session.parse_version_string('1.2.3')
27
self.assertFalse(version < '1.2.2')
28
self.assertTrue(version < (1, 2, 5))
29
self.assertTrue(version < '1.2.4-dev')
30
self.assertFalse(version < '1.2.3a1-2')
31
self.assertTrue(version < '1.2.4a1-2')
33
def test_db_version(self):
34
session = self.session
35
session.db_version = '1.2.3a3'
36
self.assertEqual(str(session.db_version), '1.2.3a3')
38
session = self.initSession()
39
self.assertEqual(str(session.db_version), '1.2.3a3')
40
self.assertTrue(session.db_version < '1.2.3')
41
self.assertTrue(session.db_version < (1, 2, 3))
42
self.assertTrue(session.db_version > (1, 2, 2))
44
def test_db_version_missing(self):
45
self.assertTrue(self.session.db_version is None)
47
def test_pkg_version(self):
48
pkg_version = self.session.package_version
49
self.assertEqual(pkg_version, '0.1.2-dev')
50
self.assertTrue(pkg_version > (0, 1, 1))
51
self.assertTrue(pkg_version < (0, 1, 2))
53
# The assertRaises context manager appears in Python 2.7
55
self.session.package_version = '1.2.3'
56
except AttributeError:
59
self.fail("package_version should be readonly")