From 8049b78a031b6de94d9854be53d3ef6bd3cd9f7d Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Fri, 13 Jan 2023 19:44:39 +0000 Subject: [PATCH] [IMP] tests: detect if any patcher was forgotten MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes odoo/odoo#109886 Signed-off-by: Xavier Dollé (xdo) --- odoo/tests/common.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/odoo/tests/common.py b/odoo/tests/common.py index 94a910d4a9b..498386da75c 100644 --- a/odoo/tests/common.py +++ b/odoo/tests/common.py @@ -41,7 +41,7 @@ from contextlib import contextmanager, ExitStack from datetime import datetime, date from dateutil.relativedelta import relativedelta from itertools import zip_longest as izip_longest -from unittest.mock import patch +from unittest.mock import patch, _patch from xmlrpc import client as xmlrpclib import requests @@ -270,6 +270,15 @@ class BaseCase(case.TestCase, metaclass=MetaCase): if not failure: break + @classmethod + def setUpClass(cls): + def check_remaining_patchers(): + for patcher in _patch._active_patches: + _logger.warning("A patcher was remaining active at the end of %s, disabling it...", cls.__name__) + patcher.stop() + cls.addClassCleanup(check_remaining_patchers) + super().setUpClass() + def cursor(self): return self.registry.cursor()