-
-
Notifications
You must be signed in to change notification settings - Fork 623
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FIX] mail_send_copy: work with existing BCC+adding tests
- Loading branch information
Showing
5 changed files
with
85 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
<head> | ||
|
@@ -9,10 +8,11 @@ | |
|
||
/* | ||
:Author: David Goodger ([email protected]) | ||
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ | ||
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ | ||
:Copyright: This stylesheet has been placed in the public domain. | ||
|
||
Default cascading style sheet for the HTML output of Docutils. | ||
Despite the name, some widely supported CSS2 features are used. | ||
|
||
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to | ||
customize this style sheet. | ||
|
@@ -275,7 +275,7 @@ | |
margin-left: 2em ; | ||
margin-right: 2em } | ||
|
||
pre.code .ln { color: grey; } /* line numbers */ | ||
pre.code .ln { color: gray; } /* line numbers */ | ||
pre.code, code { background-color: #eeeeee } | ||
pre.code .comment, code .comment { color: #5C6576 } | ||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } | ||
|
@@ -301,7 +301,7 @@ | |
span.pre { | ||
white-space: pre } | ||
|
||
span.problematic { | ||
span.problematic, pre.problematic { | ||
color: red } | ||
|
||
span.section-subtitle { | ||
|
@@ -431,7 +431,9 @@ <h3><a class="toc-backref" href="#toc-entry-5">Contributors</a></h3> | |
<div class="section" id="maintainers"> | ||
<h3><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h3> | ||
<p>This module is maintained by the OCA.</p> | ||
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a> | ||
<a class="reference external image-reference" href="https://odoo-community.org"> | ||
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /> | ||
</a> | ||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose | ||
mission is to support the collaborative development of Odoo features and | ||
promote its widespread use.</p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import test_mail_send_copy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Copyright from 2024: Alwinen GmbH (https://www.alwinen.de) | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). | ||
|
||
# TODO: find a way to test sending email with existing BCC | ||
|
||
from unittest.mock import patch | ||
|
||
from odoo.addons.mail.tests.test_mail_composer import TestMailComposer | ||
|
||
|
||
class TestMailSendCopy(TestMailComposer): | ||
@classmethod | ||
def setUpClass(cls): | ||
super().setUpClass() | ||
cls.env = cls.env(context={"testing": True}) | ||
|
||
# Create test partner | ||
cls.partner = cls.env["res.partner"].create({ | ||
"name": "Test Partner", | ||
"email": "[email protected]", | ||
}) | ||
|
||
def test_send_email_with_copy(self): | ||
"""Test that sender is added to BCC when sending email""" | ||
composer = self.env["mail.compose.message"].create({ | ||
"partner_ids": [(6, 0, [self.partner.id])], | ||
"subject": "Test Subject", | ||
"body": "<p>Test Body</p>", | ||
"email_from": "[email protected]", | ||
}) | ||
|
||
# Mock the send_email method | ||
with patch('odoo.addons.base.models.ir_mail_server.IrMailServer.send_email') as mock_send_email: | ||
composer._action_send_mail() | ||
# Verify that send_email was called | ||
self.assertTrue(mock_send_email.called) | ||
# Get the arguments passed to send_email | ||
call_args = mock_send_email.call_args[0] | ||
# The message is the first argument | ||
message = call_args[0] | ||
# Check BCC in the email message | ||
self.assertIn('[email protected]', message['Bcc']) | ||
|
||
def test_send_email_without_copy(self): | ||
"""Test that sender is not added to BCC when do_not_send_copy is True""" | ||
composer = self.env["mail.compose.message"].with_context( | ||
do_not_send_copy=True | ||
).create({ | ||
"partner_ids": [(6, 0, [self.partner.id])], | ||
"subject": "Test Subject No Copy", | ||
"body": "<p>Test Body</p>", | ||
"email_from": "[email protected]", | ||
}) | ||
|
||
with patch('odoo.addons.base.models.ir_mail_server.IrMailServer.send_email') as mock_send_email: | ||
composer._action_send_mail() | ||
self.assertTrue(mock_send_email.called) | ||
message = mock_send_email.call_args[0][0] | ||
self.assertNotIn('Bcc', message) |