1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
# -*- coding: utf-8 -*-
import time
from odoorpc.env import Environment
from odoorpc.models import Model
from odoorpc.tests import LoginTestCase
class TestEnvironment(LoginTestCase):
def test_env_init(self):
self.assertIsInstance(self.odoo.env, Environment)
def test_env_context(self):
self.assertIn('lang', self.odoo.env.context)
self.assertIn('tz', self.odoo.env.context)
self.assertIn('uid', self.odoo.env.context)
def test_env_lang(self):
self.assertEqual(self.odoo.env.lang, self.odoo.env.context.get('lang'))
def test_env_db(self):
self.assertEqual(self.odoo.env.db, self.env['db'])
def test_env_user(self):
self.assertEqual(self.odoo.env.user.login, self.env['user'])
def test_env_dirty(self):
self.odoo.config['auto_commit'] = False
def test_record_garbarge_collected():
user_ids = self.odoo.env['res.users'].search([('id', '!=', 1)])
user = self.user_obj.browse(user_ids[0])
self.assertNotIn(user, self.odoo.env.dirty)
self.assertNotIn(user, user.env.dirty)
user.name = "Joe"
self.assertIn(user, self.odoo.env.dirty)
self.assertIn(user, user.env.dirty)
test_record_garbarge_collected()
# Ensure the record has been garbage collected for the next test
import gc
gc.collect()
self.assertEqual(list(self.odoo.env.dirty), [])
def test_env_registry(self):
self.odoo.env['res.partner']
self.assertIn('res.partner', self.odoo.env.registry)
del self.odoo.env.registry['res.partner']
self.assertNotIn('res.partner', self.odoo.env.registry)
self.user.partner_id
self.assertIn('res.partner', self.odoo.env.registry)
def test_env_commit(self):
# We test with 'auto_commit' deactivated since the commit is implicit
# by default and sufficiently tested in the 'test_field_*' modules.
self.odoo.config['auto_commit'] = False
user_id = self.user_obj.create(
{'name': "TestCommit", 'login': "test_commit_%s" % time.time()}
)
user = self.user_obj.browse(user_id)
self.assertNotIn(user, self.odoo.env.dirty)
user.name = "Bob"
self.assertIn(user, self.odoo.env.dirty)
self.odoo.env.commit()
data = user.read(['name'])[0]
self.assertEqual(data['name'], "Bob")
self.assertEqual(user.name, "Bob")
self.assertNotIn(user, self.odoo.env.dirty)
def test_env_ref(self):
record = self.odoo.env.ref('base.lang_en')
self.assertIsInstance(record, Model)
self.assertEqual(record._name, 'res.lang')
self.assertEqual(record.code, 'en_US')
def test_env_contains(self):
self.assertIn('res.partner', self.odoo.env)
self.assertNotIn('does.not.exist', self.odoo.env)
|