From aa7dd77a6787447d9ca9f8c576bbaf02f6856fbc Mon Sep 17 00:00:00 2001 From: Laurent Smet Date: Thu, 2 Jul 2020 10:59:17 +0000 Subject: [PATCH] [IMP] account: Allow mocking a datetime in mocked_today X-original-commit: a9a1d8e5348010eca7de15199faae1f2469d96ff --- addons/account/tests/common.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/addons/account/tests/common.py b/addons/account/tests/common.py index b28d51d18db..7bf7c391b18 100644 --- a/addons/account/tests/common.py +++ b/addons/account/tests/common.py @@ -6,6 +6,7 @@ from odoo.tests.common import SavepointCase, HttpCase, tagged, Form import time import logging +import datetime from contextlib import contextmanager from unittest.mock import patch @@ -993,14 +994,22 @@ class AccountTestInvoicingCommon(SavepointCase): ''' if isinstance(forced_today, str): - forced_today = fields.Date.from_string(forced_today) + forced_today_date = fields.Date.from_string(forced_today) + forced_today_datetime = fields.Datetime.from_string(forced_today) + elif isinstance(forced_today, datetime.datetime): + forced_today_datetime = forced_today + forced_today_date = forced_today_datetime.date() + else: + forced_today_date = forced_today + forced_today_datetime = datetime.datetime.combine(forced_today_date, datetime.time()) def today(*args, **kwargs): - return forced_today + return forced_today_date with patch.object(fields.Date, 'today', today): with patch.object(fields.Date, 'context_today', today): - yield + with patch.object(fields.Datetime, 'now', return_value=forced_today_datetime): + yield @classmethod def init_invoice(cls, move_type, partner=None, invoice_date=None):