diff --git a/addons/itsulu_blog_publisher/models/blog_generation_log.py b/addons/itsulu_blog_publisher/models/blog_generation_log.py index 3eb9ca8..9b69750 100644 --- a/addons/itsulu_blog_publisher/models/blog_generation_log.py +++ b/addons/itsulu_blog_publisher/models/blog_generation_log.py @@ -225,12 +225,14 @@ class BlogGenerationLog(models.Model): return for email_addr in recipient_emails: - template.with_context( - email_to_override=email_addr, - ).send_mail( + template.send_mail( self.id, - force_send=True, - email_values={'email_to': email_addr}, + force_send=False, + email_values={ + 'email_to': email_addr, + 'res_id': self.id, + 'model': self._name, + }, ) _logger.info( diff --git a/addons/itsulu_blog_publisher/tests/conftest.py b/addons/itsulu_blog_publisher/tests/conftest.py new file mode 100644 index 0000000..5485c34 --- /dev/null +++ b/addons/itsulu_blog_publisher/tests/conftest.py @@ -0,0 +1,7 @@ +import pytest + + +@pytest.fixture +def odoo_env(env): + """Re-export pytest-odoo's env fixture for use in pytest-bdd step definitions.""" + return env diff --git a/addons/itsulu_blog_publisher/tests/test_performance.py b/addons/itsulu_blog_publisher/tests/test_performance.py index 126d071..84c478f 100644 --- a/addons/itsulu_blog_publisher/tests/test_performance.py +++ b/addons/itsulu_blog_publisher/tests/test_performance.py @@ -4,10 +4,13 @@ Measures latency, query count, token usage, and throughput. These tests establish baseline metrics for Phase 3 SLO tracking. """ +import logging import time from odoo.tests import TransactionCase, tagged from .factories import BlogPublisherFactory +_logger = logging.getLogger(__name__) + @tagged('post_install', '-at_install', 'itsulu_blog_publisher', 'performance') class TestGenerationLatency(TransactionCase): @@ -64,13 +67,9 @@ class TestGenerationLatency(TransactionCase): self.assertLess(elapsed, 30, f"Generation took {elapsed:.2f}s, target <30s") - # Log metric for trend analysis - self.env.cr.execute( - "INSERT INTO ir_logging (name, level, dbname, body, create_date) " - "VALUES (%s, %s, %s, %s, now())", - ('itsulu_blog_publisher.performance.generation_latency', 'INFO', - self.env.cr.dbname, - f'elapsed_seconds={elapsed:.2f} post_id={post.id}') + _logger.info( + 'performance.generation_latency elapsed_seconds=%.2f post_id=%d', + elapsed, post.id, ) def test_social_copy_generation_overhead(self):