[FIX] mail: Make tests demo data independent

Part-of: odoo/odoo#146649
This commit is contained in:
Yannick Tivisse
2023-12-18 23:32:05 +00:00
parent a8e010c7b5
commit 285541e9dd
8 changed files with 30 additions and 14 deletions
+4
View File
@@ -74,6 +74,7 @@ class TestPartner(MailCommon):
return partner
def test_address_tracking(self):
self.env.company.name = 'YourCompany'
company_partner = self.env.company.partner_id
# use some wacky formatting to check inlining
company_partner.country_id.address_format = """%(street)s
@@ -85,6 +86,9 @@ class TestPartner(MailCommon):
'city': 'Some City Name',
'street': 'Some Street Name',
'type': 'contact',
'zip': '94134',
'state_id': self.env.ref('base.state_us_5').id,
'country_id': self.env.ref('base.us').id,
})
child_partner = self.env['res.partner'].create({
'name': 'Some Guy',
+9 -1
View File
@@ -89,6 +89,14 @@ class TestUserModifyOwnProfile(HttpCaseWithUserDemo):
"""" A user should be able to modify their own profile.
Even if that user does not have access rights to write on the res.users model. """
if 'hr.employee' in self.env and not self.user_demo.employee_id:
self.env['hr.employee'].create({
'name': 'Marc Demo',
'user_id': self.user_demo.id,
})
self.user_demo.groups_id += self.env.ref('hr.group_hr_user')
self.user_demo.tz = "Europe/Brussels"
# avoid 'reload_context' action in the middle of the tour to ease steps and form save checks
with patch.object(Users, 'preference_save', lambda self: True):
self.start_tour(
@@ -97,4 +105,4 @@ class TestUserModifyOwnProfile(HttpCaseWithUserDemo):
login="demo",
step_delay=100,
)
self.assertEqual(self.env.ref('base.user_demo').email, "updatedemail@example.com")
self.assertEqual(self.user_demo.email, "updatedemail@example.com")
@@ -5,7 +5,8 @@ import requests
from http import HTTPStatus
from unittest.mock import patch
from odoo.tests.common import HttpCase, JsonRpcException, new_test_user, tagged
from odoo.addons.base.tests.common import HttpCaseWithUserDemo
from odoo.tests.common import JsonRpcException, new_test_user, tagged
from odoo.tools import mute_logger
SAMPLE = {
@@ -37,7 +38,7 @@ def mock_response(fun):
# Google Cloud Translation Documentation: https://cloud.google.com/translate/docs/reference/api-overview?hl=en
@tagged("post_install", "-at_install")
class TestTranslationController(HttpCase):
class TestTranslationController(HttpCaseWithUserDemo):
@classmethod
def setUpClass(cls):
super().setUpClass()
+5 -3
View File
@@ -130,6 +130,7 @@ class TestMailPluginController(TestMailPluginControllerCommon):
def test_get_partner_no_access(self):
"""Test the case where the partner has been enriched by someone else, but we can't access it."""
partner = self.env["res.partner"].create({"name": "Test", "website": "https://test.example.com"})
partner_count = self.env['res.partner'].search_count([])
self.env["res.partner.iap"].create({
"partner_id": partner.id,
"iap_search_domain": "@test.example.com",
@@ -141,6 +142,8 @@ class TestMailPluginController(TestMailPluginControllerCommon):
lambda _, domain: {"name": "Name", "email": "test@test.example.com"},
)
self.assertEqual(result["partner"]["company"]["website"], "https://test.example.com")
new_partner_count = self.env['res.partner'].search_count([])
self.assertEqual(new_partner_count, partner_count, "Should not have created a new partner")
# now we can't access it
def _check_access_rule(record, operation, *args, **kwargs):
@@ -156,9 +159,8 @@ class TestMailPluginController(TestMailPluginControllerCommon):
self.assertEqual(result["partner"]["company"].get("id"), partner.id)
self.assertEqual(result["partner"]["company"].get("name"), "No Access")
self.assertFalse(result["partner"]["company"].get("website"))
partners = self.env["res.partner"].search([("email", "=", partner.email)])
self.assertEqual(partners, partner, "Should not have created a new partner")
new_partner_count = self.env['res.partner'].search_count([])
self.assertEqual(new_partner_count, partner_count, "Should not have created a new partner")
def test_get_partner_no_email_returned_by_iap(self):
"""Test the case where IAP do not return an email address.
@@ -161,6 +161,7 @@ class TestMessageValues(MailCommon):
'Reply-To: use only email when formataddr > 78 chars')
# name + company_name would make it blow up: keep record_name in formatting
self.company_admin.name = "Company name being about 33 chars"
test_record.write({'name': 'Name that would be more than 78 with company name'})
msg = self.env['mail.message'].create({
'model': test_record._name,
@@ -13,7 +13,7 @@ class TestSMSPerformance(BaseMailPerformance, sms_common.SMSCase):
def setUp(self):
super(TestSMSPerformance, self).setUp()
self.env.company.country_id = self.env.ref('base.us')
self.test_record = self.env['mail.test.sms'].with_context(self._test_context).create({
'name': 'Test',
'customer_id': self.customer.id,
@@ -35,7 +35,7 @@ class TestSMSPerformance(BaseMailPerformance, sms_common.SMSCase):
def test_message_sms_record_1_partner(self):
record = self.test_record.with_user(self.env.user)
pids = self.customer.ids
with self.subTest("QueryCount"), self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=27):
with self.subTest("QueryCount"), self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=31):
messages = record._message_sms(
body='Performance Test',
partner_ids=pids,
@@ -50,7 +50,7 @@ class TestSMSPerformance(BaseMailPerformance, sms_common.SMSCase):
def test_message_sms_record_10_partners(self):
record = self.test_record.with_user(self.env.user)
pids = self.partners.ids
with self.subTest("QueryCount"), self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=27):
with self.subTest("QueryCount"), self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=31):
messages = record._message_sms(
body='Performance Test',
partner_ids=pids,
@@ -64,7 +64,7 @@ class TestSMSPerformance(BaseMailPerformance, sms_common.SMSCase):
@warmup
def test_message_sms_record_default(self):
record = self.test_record.with_user(self.env.user)
with self.subTest("QueryCount"), self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=29):
with self.subTest("QueryCount"), self.mockSMSGateway(sms_allow_unlink=True), self.assertQueryCount(employee=32):
messages = record._message_sms(
body='Performance Test',
)
+3 -3
View File
@@ -9,8 +9,8 @@ from odoo.addons.base.tests.common import TransactionCaseWithUserDemo
class TestLivechatCommon(TransactionCaseWithUserDemo):
def setUp(self):
super(TestLivechatCommon, self).setUp()
self.env.ref("base.main_partner").email = "info@mycompany.com"
super().setUp()
self.env.company.email = "test@test.example.com"
self.base_datetime = fields.Datetime.from_string("2019-11-11 21:30:00")
self.group_user = self.env.ref('base.group_user')
@@ -43,7 +43,7 @@ class TestLivechatCommon(TransactionCaseWithUserDemo):
'country_id': self.env.ref('base.de').id,
'website_id': self.env.ref('website.default_website').id,
'partner_id': self.partner_demo.id,
'access_token': self.partner_demo.id,
'access_token': self.user_demo.partner_id.id,
}] + [
dict(visitor_vals, access_token='%032x' % random.randrange(16**32))
for _ in range(self.max_sessions_per_operator)
+1 -1
View File
@@ -9,7 +9,7 @@ from odoo.addons.website_livechat.tests.common import TestLivechatCommon
@tests.tagged('post_install', '-at_install')
class TestLivechatUI(HttpCaseWithUserDemo, TestLivechatCommon):
def setUp(self):
super(TestLivechatUI, self).setUp()
super().setUp()
self.visitor_tour = self.env['website.visitor'].create({
'access_token': 'f9d2e784d3d96a904fca2f5e2a559a19',
'website_id': self.env.ref('website.default_website').id,