Skip to content

Commit 00fe478

Browse files
committed
Merge PR #862 into 16.0
Signed-off-by legalsylvain
2 parents 73017f0 + 9b92766 commit 00fe478

File tree

1 file changed

+47
-3
lines changed

1 file changed

+47
-3
lines changed

sql_export_mail/tests/test_sql_query_mail.py

+47-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
44

55
from odoo import SUPERUSER_ID
6+
from odoo.exceptions import UserError
67
from odoo.tests.common import TransactionCase
78

89

@@ -13,15 +14,58 @@ def setUp(self):
1314
self.sql_report_demo.write({"mail_user_ids": [(4, SUPERUSER_ID)]})
1415

1516
def test_sql_query_mail(self):
16-
mail_obj = self.env["mail.mail"]
17-
mails = mail_obj.search(
17+
"""Check the general execution"""
18+
self.check_before_change()
19+
self.check_execution()
20+
21+
def test_not_able_add_user(self):
22+
"""if there are field_ids, mail_user_ids can not be set"""
23+
sql_report_demo_with_partner = self.env.ref(
24+
"sql_export.sql_export_partner_with_variables"
25+
)
26+
with self.assertRaises(UserError):
27+
sql_report_demo_with_partner.write(
28+
{"mail_user_ids": [(4, self.env.ref("base.user_demo").id)]}
29+
)
30+
31+
def test_sql_query_mail_company(self):
32+
"""Check the general execution with %(company_id)s"""
33+
self.check_before_change()
34+
self.sql_report_demo.write(
35+
{
36+
"mail_user_ids": [(4, self.env.ref("base.user_demo").id)],
37+
"query": """SELECT name, street
38+
FROM res_partner where company_id = %(company_id)s""",
39+
}
40+
)
41+
self.check_execution()
42+
43+
def test_sql_query_mail_company_user(self):
44+
"""Check the general execution with %(company_id)s and %(user_id)s)"""
45+
self.check_before_change()
46+
self.sql_report_demo.write(
47+
{
48+
"mail_user_ids": [(4, self.env.ref("base.user_demo").id)],
49+
"query": """SELECT name, street FROM res_partner
50+
where company_id = %(company_id)s and id in (
51+
select partner_id from res_users where id = %(user_id)s)""",
52+
}
53+
)
54+
self.check_execution()
55+
56+
def check_before_change(self):
57+
"""Check if there are no mails before changing the sql report"""
58+
mails = self.env["mail.mail"].search(
1859
[("model", "=", "sql.export"), ("res_id", "=", self.sql_report_demo.id)]
1960
)
2061
self.assertFalse(mails)
62+
63+
def check_execution(self):
64+
"""Check if the cron could be created and the mail sending is working"""
2165
self.sql_report_demo.create_cron()
2266
self.assertTrue(self.sql_report_demo.cron_ids)
2367
self.sql_report_demo.cron_ids.method_direct_trigger()
24-
mails = mail_obj.search(
68+
mails = self.env["mail.mail"].search(
2569
[("model", "=", "sql.export"), ("res_id", "=", self.sql_report_demo.id)]
2670
)
2771
self.assertTrue(mails)

0 commit comments

Comments
 (0)