From 04dc074804f78f764ed35e01d30cbfd9aca4564c Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Mon, 4 Nov 2019 16:20:09 +0100 Subject: [PATCH] [IMP] base: Adapt tests to work with/without demo data --- odoo/addons/base/tests/test_acl.py | 45 +++++++------ odoo/addons/base/tests/test_api.py | 33 +++++---- odoo/addons/base/tests/test_cache.py | 5 +- odoo/addons/base/tests/test_expression.py | 67 +++++++++++++------ odoo/addons/base/tests/test_form_create.py | 19 ++++++ odoo/addons/base/tests/test_ir_filters.py | 20 ++---- odoo/addons/base/tests/test_misc.py | 1 + odoo/addons/base/tests/test_qweb.py | 1 + .../base/tests/test_res_partner_bank.py | 6 +- 9 files changed, 124 insertions(+), 73 deletions(-) diff --git a/odoo/addons/base/tests/test_acl.py b/odoo/addons/base/tests/test_acl.py index 1648cf1dcea..fec7fda8ed5 100644 --- a/odoo/addons/base/tests/test_acl.py +++ b/odoo/addons/base/tests/test_acl.py @@ -4,19 +4,18 @@ from lxml import etree from odoo.exceptions import AccessError +from odoo.addons.base.tests.common import TransactionCaseWithUserDemo from odoo.tests.common import TransactionCase from odoo.tools.misc import mute_logger # test group that demo user should not have -USER_DEMO = 'base.user_demo' GROUP_SYSTEM = 'base.group_system' -class TestACL(TransactionCase): +class TestACL(TransactionCaseWithUserDemo): def setUp(self): super(TestACL, self).setUp() - self.demo_user = self.env.ref(USER_DEMO) self.erp_system_group = self.env.ref(GROUP_SYSTEM) def _set_field_groups(self, model, field_name, groups): @@ -26,7 +25,7 @@ class TestACL(TransactionCase): def test_field_visibility_restriction(self): """Check that model-level ``groups`` parameter effectively restricts access to that field for users who do not belong to one of the explicitly allowed groups""" - currency = self.env['res.currency'].with_user(self.demo_user) + currency = self.env['res.currency'].with_user(self.user_demo) # Add a view that adds a label for the field we are going to check extension = self.env["ir.ui.view"].create({ @@ -50,7 +49,7 @@ class TestACL(TransactionCase): original_fields = currency.fields_get([]) form_view = currency.fields_view_get(False, 'form') view_arch = etree.fromstring(form_view.get('arch')) - has_group_system = self.demo_user.has_group(GROUP_SYSTEM) + has_group_system = self.user_demo.has_group(GROUP_SYSTEM) self.assertFalse(has_group_system, "`demo` user should not belong to the restricted group before the test") self.assertIn('decimal_places', original_fields, "'decimal_places' field must be properly visible before the test") self.assertNotEqual(view_arch.xpath("//field[@name='decimal_places'][@nolabel='1']"), [], @@ -71,8 +70,8 @@ class TestACL(TransactionCase): "Label for 'decimal_places' must not be found in view definition") # Make demo user a member of the restricted group and check that the field is back - self.erp_system_group.users += self.demo_user - has_group_system = self.demo_user.has_group(GROUP_SYSTEM) + self.erp_system_group.users += self.user_demo + has_group_system = self.user_demo.has_group(GROUP_SYSTEM) fields = currency.fields_get([]) form_view = currency.fields_view_get(False, 'form') view_arch = etree.fromstring(form_view.get('arch')) @@ -86,10 +85,10 @@ class TestACL(TransactionCase): @mute_logger('odoo.models') def test_field_crud_restriction(self): "Read/Write RPC access to restricted field should be forbidden" - partner = self.env['res.partner'].browse(1).with_user(self.demo_user) + partner = self.env['res.partner'].browse(1).with_user(self.user_demo) # Verify the test environment first - has_group_system = self.demo_user.has_group(GROUP_SYSTEM) + has_group_system = self.user_demo.has_group(GROUP_SYSTEM) self.assertFalse(has_group_system, "`demo` user should not belong to the restricted group") self.assertTrue(partner.read(['bank_ids'])) self.assertTrue(partner.write({'bank_ids': []})) @@ -103,8 +102,8 @@ class TestACL(TransactionCase): partner.write({'bank_ids': []}) # Add the restricted group, and check that it works again - self.erp_system_group.users += self.demo_user - has_group_system = self.demo_user.has_group(GROUP_SYSTEM) + self.erp_system_group.users += self.user_demo + has_group_system = self.user_demo.has_group(GROUP_SYSTEM) self.assertTrue(has_group_system, "`demo` user should now belong to the restricted group") self.assertTrue(partner.read(['bank_ids'])) self.assertTrue(partner.write({'bank_ids': []})) @@ -112,7 +111,10 @@ class TestACL(TransactionCase): @mute_logger('odoo.models') def test_fields_browse_restriction(self): """Test access to records having restricted fields""" - partner = self.env['res.partner'].with_user(self.demo_user) + # Invalidate cache to avoid restricted value to be available + # in the cache + self.user_demo.invalidate_cache() + partner = self.env['res.partner'].with_user(self.user_demo) self._set_field_groups(partner, 'email', GROUP_SYSTEM) # accessing fields must no raise exceptions... @@ -126,7 +128,7 @@ class TestACL(TransactionCase): def test_view_create_edit_button_invisibility(self): """ Test form view Create, Edit, Delete button visibility based on access right of model""" methods = ['create', 'edit', 'delete'] - company = self.env['res.company'].with_user(self.demo_user) + company = self.env['res.company'].with_user(self.user_demo) company_view = company.fields_view_get(False, 'form') view_arch = etree.fromstring(company_view['arch']) for method in methods: @@ -134,9 +136,9 @@ class TestACL(TransactionCase): def test_view_create_edit_button_visibility(self): """ Test form view Create, Edit, Delete button visibility based on access right of model""" - self.erp_system_group.users += self.demo_user + self.erp_system_group.users += self.user_demo methods = ['create', 'edit', 'delete'] - company = self.env['res.company'].with_user(self.demo_user) + company = self.env['res.company'].with_user(self.user_demo) company_view = company.fields_view_get(False, 'form') view_arch = etree.fromstring(company_view['arch']) for method in methods: @@ -145,7 +147,7 @@ class TestACL(TransactionCase): def test_m2o_field_create_edit_invisibility(self): """ Test many2one field Create and Edit option visibility based on access rights of relation field""" methods = ['create', 'write'] - company = self.env['res.company'].with_user(self.demo_user) + company = self.env['res.company'].with_user(self.user_demo) company_view = company.fields_view_get(False, 'form') view_arch = etree.fromstring(company_view['arch']) field_node = view_arch.xpath("//field[@name='currency_id']") @@ -155,9 +157,9 @@ class TestACL(TransactionCase): def test_m2o_field_create_edit_visibility(self): """ Test many2one field Create and Edit option visibility based on access rights of relation field""" - self.erp_system_group.users += self.demo_user + self.erp_system_group.users += self.user_demo methods = ['create', 'write'] - company = self.env['res.company'].with_user(self.demo_user) + company = self.env['res.company'].with_user(self.user_demo) company_view = company.fields_view_get(False, 'form') view_arch = etree.fromstring(company_view['arch']) field_node = view_arch.xpath("//field[@name='currency_id']") @@ -166,12 +168,11 @@ class TestACL(TransactionCase): self.assertEqual(field_node[0].get('can_' + method), 'true') -class TestIrRule(TransactionCase): +class TestIrRule(TransactionCaseWithUserDemo): def test_ir_rule(self): model_res_partner = self.env.ref('base.model_res_partner') group_user = self.env.ref('base.group_user') - user_demo = self.env.ref('base.user_demo') # create an ir_rule for the Employee group with an blank domain rule1 = self.env['ir.rule'].create({ @@ -182,7 +183,7 @@ class TestIrRule(TransactionCase): }) # read as demo user the partners (one blank domain) - partners_demo = self.env['res.partner'].with_user(user_demo) + partners_demo = self.env['res.partner'].with_user(self.user_demo) partners = partners_demo.search([]) self.assertTrue(partners, "Demo user should see some partner.") @@ -256,7 +257,7 @@ class TestIrRule(TransactionCase): # create a new group with demo user in it, and a complex rule group_test = self.env['res.groups'].create({ 'name': 'Test Group', - 'users': [(6, 0, user_demo.ids)], + 'users': [(6, 0, self.user_demo.ids)], }) # add the rule to the new group, with a domain containing an implicit diff --git a/odoo/addons/base/tests/test_api.py b/odoo/addons/base/tests/test_api.py index 158fe2ee500..149e7b3a261 100644 --- a/odoo/addons/base/tests/test_api.py +++ b/odoo/addons/base/tests/test_api.py @@ -2,14 +2,19 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import models +from odoo.addons.base.tests.common import SavepointCaseWithUserDemo from odoo.tools import mute_logger -from odoo.tests import common from odoo.exceptions import AccessError -class TestAPI(common.TransactionCase): +class TestAPI(SavepointCaseWithUserDemo): """ test the new API of the ORM """ + @classmethod + def setUpClass(cls): + super(TestAPI, cls).setUpClass() + cls._load_partners_set() + def assertIsRecordset(self, value, model): self.assertIsInstance(value, models.BaseModel) self.assertEqual(value._name, model) @@ -48,8 +53,8 @@ class TestAPI(common.TransactionCase): @mute_logger('odoo.models') def test_02_query_limit(self): """ Build a recordset with offset, and check equivalence. """ - partners1 = self.env['res.partner'].search([], limit=10) - partners2 = self.env['res.partner'].search([])[:10] + partners1 = self.env['res.partner'].search([], order='id asc', limit=10) + partners2 = self.env['res.partner'].search([], order='id asc')[:10] self.assertIsRecordset(partners1, 'res.partner') self.assertIsRecordset(partners2, 'res.partner') self.assertEqual(list(partners1), list(partners2)) @@ -57,8 +62,8 @@ class TestAPI(common.TransactionCase): @mute_logger('odoo.models') def test_03_query_offset_limit(self): """ Build a recordset with offset and limit, and check equivalence. """ - partners1 = self.env['res.partner'].search([], offset=3, limit=7) - partners2 = self.env['res.partner'].search([])[3:10] + partners1 = self.env['res.partner'].search([], order='id asc', offset=3, limit=7) + partners2 = self.env['res.partner'].search([], order='id asc')[3:10] self.assertIsRecordset(partners1, 'res.partner') self.assertIsRecordset(partners2, 'res.partner') self.assertEqual(list(partners1), list(partners2)) @@ -173,7 +178,7 @@ class TestAPI(common.TransactionCase): partners[0].company_id.write({'name': 'Fools'}) # create an environment with the demo user - demo = self.env['res.users'].search([('login', '=', 'demo')])[0] + demo = self.env['res.users'].search([('login', 'ilike', 'demo')])[0] demo_env = self.env(user=demo) self.assertNotEqual(demo_env, self.env) @@ -193,16 +198,18 @@ class TestAPI(common.TransactionCase): self.assertEqual(p.env, demo_env) # demo user can read but not modify company data - demo_partners[0].company_id.name + demo_partner = self.env['res.partner'].search([('name', '=', 'Landon Roberts')]).with_user(demo) + self.assertTrue(demo_partner.company_id, 'This partner is supposed to be linked to a company') + demo_partner.company_id.name with self.assertRaises(AccessError): - demo_partners[0].company_id.write({'name': 'Pricks'}) + demo_partner.company_id.write({'name': 'Pricks'}) # remove demo user from all groups demo.write({'groups_id': [(5,)]}) # demo user can no longer access partner data with self.assertRaises(AccessError): - demo_partners[0].company_id.name + demo_partner.company_id.name @mute_logger('odoo.models') def test_60_cache(self): @@ -319,7 +326,7 @@ class TestAPI(common.TransactionCase): # the recordset operations below share the prefetch set same_prefetch(partners, partners.browse(partners.ids)) - same_prefetch(partners, partners.with_user(self.env.ref('base.user_demo'))) + same_prefetch(partners, partners.with_user(self.user_demo)) same_prefetch(partners, partners.with_context(active_test=False)) same_prefetch(partners, partners[:10].with_prefetch(partners._prefetch_ids)) @@ -338,7 +345,7 @@ class TestAPI(common.TransactionCase): 'name': 'Non-empty relational fields', 'country_id': self.ref('base.be'), 'bank_ids': [(0, 0, {'acc_number': 'FOO42'})], - 'category_id': [(4, self.ref('base.res_partner_category_0'))], + 'category_id': [(4, self.partner_category.id)], } partners = partners.create(vals0) + partners.create(vals1) for partner in partners: @@ -511,5 +518,5 @@ class TestAPI(common.TransactionCase): self.assertEqual(ps.sorted('name').ids, by_name_ids) # sort by inverse name, with a field name - by_name_ids.reverse() + by_name_ids = [p.id for p in sorted(ps, key=lambda p: p.name, reverse=True)] self.assertEqual(ps.sorted('name', reverse=True).ids, by_name_ids) diff --git a/odoo/addons/base/tests/test_cache.py b/odoo/addons/base/tests/test_cache.py index d6c18dd4132..0efa36ca48a 100644 --- a/odoo/addons/base/tests/test_cache.py +++ b/odoo/addons/base/tests/test_cache.py @@ -6,11 +6,12 @@ import platform import psutil import unittest +from odoo.addons.base.tests.common import TransactionCaseWithUserDemo from odoo.exceptions import CacheMiss from odoo.tests.common import TransactionCase -class TestRecordCache(TransactionCase): +class TestRecordCache(TransactionCaseWithUserDemo): def test_cache(self): """ Check the record cache object. """ @@ -37,7 +38,7 @@ class TestRecordCache(TransactionCase): check1(record, ref, ref_val) foo1, bar1 = Model.browse([1, 2]) - foo2, bar2 = Model.with_user(self.env.ref('base.user_demo')).browse([1, 2]) + foo2, bar2 = Model.with_user(self.user_demo).browse([1, 2]) self.assertNotEqual(foo1.env.uid, foo2.env.uid) # cache is empty diff --git a/odoo/addons/base/tests/test_expression.py b/odoo/addons/base/tests/test_expression.py index 7b5dfacadba..61d470e094c 100644 --- a/odoo/addons/base/tests/test_expression.py +++ b/odoo/addons/base/tests/test_expression.py @@ -3,13 +3,21 @@ import psycopg2 +from odoo.addons.base.tests.common import SavepointCaseWithUserDemo +from odoo.fields import Date from odoo.models import BaseModel from odoo.tests.common import TransactionCase from odoo.tools import mute_logger from odoo.osv import expression -class TestExpression(TransactionCase): +class TestExpression(SavepointCaseWithUserDemo): + + @classmethod + def setUpClass(cls): + super(TestExpression, cls).setUpClass() + cls._load_partners_set() + def _search(self, obj, domain, init_domain=[]): sql = obj.search(domain) allobj = obj.search(init_domain) @@ -111,7 +119,7 @@ class TestExpression(TransactionCase): Category = self.env['res.partner.category'] # search through m2m relation - partners = self._search(Partner, [('category_id', 'child_of', self.ref('base.res_partner_category_0'))]) + partners = self._search(Partner, [('category_id', 'child_of', self.partner_category.id)]) self.assertTrue(partners) # setup test partner categories @@ -217,8 +225,8 @@ class TestExpression(TransactionCase): Partner = self.env['res.partner'] all_partners = self._search(Partner, []) self.assertTrue(len(all_partners) > 1) - one = all_partners[0] - others = all_partners[1:] + one = self.env.ref('base.main_partner') + others = all_partners - one res_1 = self._search(Partner, [('id', '=', one.id)]) self.assertEqual(one, res_1) @@ -242,15 +250,15 @@ class TestExpression(TransactionCase): Partner = self.env['res.partner'] # testing equality with name - partners = self._search(Partner, [('parent_id', '=', 'Deco Addict')]) + partners = self._search(Partner, [('parent_id', '=', 'Pepper Street')]) self.assertTrue(partners) # testing the in operator with name - partners = self._search(Partner, [('parent_id', 'in', 'Deco Addict')]) + partners = self._search(Partner, [('parent_id', 'in', 'Pepper Street')]) self.assertTrue(partners) # testing the in operator with a list of names - partners = self._search(Partner, [('parent_id', 'in', ['Deco Addict', 'Wood Corner'])]) + partners = self._search(Partner, [('parent_id', 'in', ['Pepper Street', 'Inner Works'])]) self.assertTrue(partners) # check if many2one works with empty search list @@ -480,6 +488,22 @@ class TestExpression(TransactionCase): Currency = self.env['res.currency'] CurrencyRate = self.env['res.currency.rate'] + CurrencyRate.create([ + { + 'currency_id': self.env.ref('base.EUR').id, + 'name': '2000-01-01', + 'rate': 1.0, + }, { + 'currency_id': self.env.ref('base.USD').id, + 'name': '2000-01-01', + 'rate': 1.2834, + }, { + 'currency_id': self.env.ref('base.USD').id, + 'name': '2000-01-02', + 'rate': 1.5289, + } + ]) + # create a currency and a currency rate currency = Currency.create({'name': 'ZZZ', 'symbol': 'ZZZ', 'rounding': 1.0}) currency_rate = CurrencyRate.create({'name': '2010-01-01', 'currency_id': currency.id, 'rate': 1.0}) @@ -583,8 +607,8 @@ class TestExpression(TransactionCase): def test_like_wildcards(self): # check that =like/=ilike expressions are working on an untranslated field Partner = self.env['res.partner'] - partners = self._search(Partner, [('name', '=like', 'W_od_C_rn_r')]) - self.assertTrue(len(partners) == 1, "Must match one partner (Wood Corner)") + partners = self._search(Partner, [('name', '=like', 'I_ner_W_rk_')]) + self.assertTrue(all(partner.name == 'Inner Works' for partner in partners), "Must match only 'Inner Works'") partners = self._search(Partner, [('name', '=ilike', 'G%')]) self.assertTrue(len(partners) >= 1, "Must match one partner (Gemini Furniture)") @@ -608,12 +632,6 @@ class TestExpression(TransactionCase): countries = self._search(Country, domain) self.assertEqual(countries, belgium) - def test_long_table_alias(self): - # To test the 64 characters limit for table aliases in PostgreSQL - self.patch_order('res.users', 'partner_id') - self.patch_order('res.partner', 'commercial_partner_id,company_id,name') - self.env['res.users'].search([('name', '=', 'test')]) - @mute_logger('odoo.sql_db') def test_invalid(self): """ verify that invalid expressions are refused, even for magic fields """ @@ -640,12 +658,12 @@ class TestExpression(TransactionCase): vals = { 'name': 'OpenERP Test', 'active': False, - 'category_id': [(6, 0, [self.ref("base.res_partner_category_0")])], + 'category_id': [(6, 0, [self.partner_category.id])], 'child_ids': [(0, 0, {'name': 'address of OpenERP Test', 'country_id': self.ref("base.be")})], } Partner.create(vals) - partner = self._search(Partner, [('category_id', 'ilike', 'vendor'), ('active', '=', False)], [('active', '=', False)]) - self.assertTrue(partner, "Record not Found with category vendor and active False.") + partner = self._search(Partner, [('category_id', 'ilike', 'sellers'), ('active', '=', False)], [('active', '=', False)]) + self.assertTrue(partner, "Record not Found with category sellers and active False.") # testing for one2many field with country Belgium and active=False partner = self._search(Partner, [('child_ids.country_id','=','Belgium'),('active','=',False)], [('active', '=', False)]) @@ -655,7 +673,7 @@ class TestExpression(TransactionCase): """ Check that we can exclude translated fields (bug lp:1071710) """ # first install french language self.env['ir.translation']._load_module_terms(['base'], ['fr_FR']) - self.env.ref('base.res_partner_2').country_id = self.env.ref('base.be') + self.env['res.partner'].search([('name', '=', 'Pepper Street')]).country_id = self.env.ref('base.be') # actual test Country = self.env['res.country'].with_context(lang='fr_FR') be = self.env.ref('base.be') @@ -664,7 +682,7 @@ class TestExpression(TransactionCase): # indirect search via m2o Partner = self.env['res.partner'] - deco_addict = self._search(Partner, [('name', '=', 'Deco Addict')]) + deco_addict = self._search(Partner, [('name', '=', 'Pepper Street')]) not_be = self._search(Partner, [('country_id', '!=', 'Belgium')]) self.assertNotIn(deco_addict, not_be) @@ -715,6 +733,15 @@ class TestExpression(TransactionCase): self.assertEqual(expr, false) +class TestExpression2(TransactionCase): + + def test_long_table_alias(self): + # To test the 64 characters limit for table aliases in PostgreSQL + self.patch_order('res.users', 'partner_id') + self.patch_order('res.partner', 'commercial_partner_id,company_id,name') + self.env['res.users'].search([('name', '=', 'test')]) + + class TestAutoJoin(TransactionCase): def setUp(self): diff --git a/odoo/addons/base/tests/test_form_create.py b/odoo/addons/base/tests/test_form_create.py index 54757b68c57..b79980017c4 100644 --- a/odoo/addons/base/tests/test_form_create.py +++ b/odoo/addons/base/tests/test_form_create.py @@ -1,4 +1,6 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + from odoo.tests import TransactionCase, tagged, Form @@ -12,6 +14,23 @@ class TestFormCreate(TransactionCase): def test_create_res_partner(self): partner_form = Form(self.env['res.partner']) partner_form.name = 'a partner' + # YTI: Clean that brol + if hasattr(self.env['res.partner'], 'property_account_payable_id'): + property_account_payable_id = self.env['account.account'].create({ + 'name': 'Test Account', + 'user_type_id': self.env.ref('account.data_account_type_payable').id, + 'code': 'TestAccountPayable', + 'reconcile': True + }) + property_account_receivable_id = self.env['account.account'].create({ + 'name': 'Test Account', + 'user_type_id': self.env.ref('account.data_account_type_receivable').id, + 'code': 'TestAccountReceivable', + 'reconcile': True + }) + partner_form.property_account_payable_id = property_account_payable_id + partner_form.property_account_receivable_id = property_account_receivable_id + # [('internal_type', '=', 'payable'), ('deprecated', '=', False)] partner_form.save() def test_create_res_users(self): diff --git a/odoo/addons/base/tests/test_ir_filters.py b/odoo/addons/base/tests/test_ir_filters.py index 040646cabba..1e0d0effc30 100644 --- a/odoo/addons/base/tests/test_ir_filters.py +++ b/odoo/addons/base/tests/test_ir_filters.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import exceptions +from odoo.addons.base.tests.common import TransactionCaseWithUserDemo from odoo.tests.common import TransactionCase, ADMIN_USER_ID def noid(seq): @@ -12,7 +13,12 @@ def noid(seq): return seq -class FiltersCase(TransactionCase): +class FiltersCase(TransactionCaseWithUserDemo): + def setUp(self): + super(FiltersCase, self).setUp() + self.USER_NG = self.env['res.users'].name_search('demo')[0] + self.USER_ID = self.USER_NG[0] + def build(self, model, *args): Model = self.env[model].with_user(ADMIN_USER_ID) for vals in args: @@ -20,10 +26,6 @@ class FiltersCase(TransactionCase): class TestGetFilters(FiltersCase): - def setUp(self): - super(TestGetFilters, self).setUp() - self.USER_NG = self.env['res.users'].name_search('demo')[0] - self.USER_ID = self.USER_NG[0] def test_own_filters(self): self.build( @@ -77,10 +79,6 @@ class TestGetFilters(FiltersCase): class TestOwnDefaults(FiltersCase): - def setUp(self): - super(TestOwnDefaults, self).setUp() - self.USER_NG = self.env['res.users'].name_search('demo')[0] - self.USER_ID = self.USER_NG[0] def test_new_no_filter(self): """ @@ -180,10 +178,6 @@ class TestOwnDefaults(FiltersCase): class TestGlobalDefaults(FiltersCase): - def setUp(self): - super(TestGlobalDefaults, self).setUp() - self.USER_NG = self.env['res.users'].name_search('demo')[0] - self.USER_ID = self.USER_NG[0] def test_new_filter_not_default(self): """ diff --git a/odoo/addons/base/tests/test_misc.py b/odoo/addons/base/tests/test_misc.py index 34bd040eff8..29d0a021558 100644 --- a/odoo/addons/base/tests/test_misc.py +++ b/odoo/addons/base/tests/test_misc.py @@ -190,6 +190,7 @@ class TestDateRangeFunction(BaseCase): class TestFormatLangDate(TransactionCase): def test_00_accepted_types(self): + self.env.user.tz = 'Europe/Brussels' datetime_str = '2017-01-31 12:00:00' date_datetime = datetime.datetime.strptime(datetime_str, "%Y-%m-%d %H:%M:%S") date_date = date_datetime.date() diff --git a/odoo/addons/base/tests/test_qweb.py b/odoo/addons/base/tests/test_qweb.py index 9fa00468f06..13b95926f47 100644 --- a/odoo/addons/base/tests/test_qweb.py +++ b/odoo/addons/base/tests/test_qweb.py @@ -610,6 +610,7 @@ class TestQWeb(TransactionCase): return lambda: self.run_test_file(os.path.join(path, f)) def run_test_file(self, path): + self.env.user.tz = 'Europe/Brussels' doc = etree.parse(path).getroot() loader = FileSystemLoader(path) qweb = self.env['ir.qweb'] diff --git a/odoo/addons/base/tests/test_res_partner_bank.py b/odoo/addons/base/tests/test_res_partner_bank.py index 9d19b4ef395..1727cbb6916 100644 --- a/odoo/addons/base/tests/test_res_partner_bank.py +++ b/odoo/addons/base/tests/test_res_partner_bank.py @@ -3,10 +3,10 @@ # Copyright (c) 2015 ACSONE SA/NV () -from odoo.tests.common import TransactionCase +from odoo.addons.base.tests.common import SavepointCaseWithUserDemo -class TestResPartnerBank(TransactionCase): +class TestResPartnerBank(SavepointCaseWithUserDemo): """Tests acc_number """ @@ -17,7 +17,7 @@ class TestResPartnerBank(TransactionCase): self.assertEqual(0, len(vals)) partner_bank = partner_bank_model.create({ 'acc_number': acc_number, - 'partner_id': self.ref('base.res_partner_2'), + 'partner_id': self.env['res.partner'].create({'name': 'Pepper Test'}).id, 'acc_type': 'bank', }) vals = partner_bank_model.search([('acc_number', '=', acc_number)])