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
|
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from psycopg2 import IntegrityError
from odoo.tests.common import TransactionCase, new_test_user
from odoo.exceptions import ValidationError
from odoo.service.model import check
from odoo.tools import mute_logger
class TestWebsiteResUsers(TransactionCase):
def setUp(self):
super().setUp()
websites = self.env['website'].create([
{'name': 'Test Website'},
{'name': 'Test Website 2'},
])
self.website_1, self.website_2 = websites
def test_no_website(self):
new_test_user(self.env, login='Pou', website_id=False)
with self.assertRaises(ValidationError):
new_test_user(self.env, login='Pou', website_id=False)
def test_websites_set_null(self):
user_1 = new_test_user(self.env, login='Pou', website_id=self.website_1.id)
user_2 = new_test_user(self.env, login='Pou', website_id=self.website_2.id)
with self.assertRaises(ValidationError):
(user_1 | user_2).write({'website_id': False})
def test_null_and_website(self):
new_test_user(self.env, login='Pou', website_id=self.website_1.id)
new_test_user(self.env, login='Pou', website_id=False)
def test_change_login(self):
new_test_user(self.env, login='Pou', website_id=self.website_1.id)
user_belle = new_test_user(self.env, login='Belle', website_id=self.website_1.id)
with self.assertRaises(IntegrityError), mute_logger('odoo.sql_db'):
user_belle.login = 'Pou'
def test_change_login_no_website(self):
new_test_user(self.env, login='Pou', website_id=False)
user_belle = new_test_user(self.env, login='Belle', website_id=False)
with self.assertRaises(ValidationError):
user_belle.login = 'Pou'
def test_same_website_message(self):
@check # Check decorator, otherwise translation is not applied
def check_new_test_user(dbname):
new_test_user(self.env(context={'land': 'en_US'}), login='Pou', website_id=self.website_1.id)
new_test_user(self.env, login='Pou', website_id=self.website_1.id)
# Should be a ValidationError (with a nice translated error message),
# not an IntegrityError
with self.assertRaises(ValidationError), mute_logger('odoo.sql_db'):
check_new_test_user(self.env.registry._db.dbname)
|