From cceb3e81d9591af30da4c08f3836cc97e18b3eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=C3=89vrard?= Date: Mon, 9 Feb 2026 17:33:32 +0100 Subject: [PATCH] Use always fork method to test process local We can not rely on the default process method of multiprocessing module. Closes #14579 --- trytond/trytond/tests/test_tools.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/trytond/trytond/tests/test_tools.py b/trytond/trytond/tests/test_tools.py index 76754ac74c..461b853dd9 100644 --- a/trytond/trytond/tests/test_tools.py +++ b/trytond/trytond/tests/test_tools.py @@ -5,12 +5,13 @@ import datetime as dt import doctest import email.message +import os import sys import unittest from copy import deepcopy from decimal import Decimal from io import BytesIO -from multiprocessing import Process +from multiprocessing import Process, set_start_method from multiprocessing.managers import SharedMemoryManager from unittest.mock import patch from uuid import uuid4 @@ -1531,8 +1532,19 @@ class EmailTestCase(TestCase): self.assertEqual(email_.format_address(address, name), result) +@unittest.skipUnless(hasattr(os, 'fork'), "missing fork") class ProcessLocalTestCase(TestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + set_start_method('fork', force=True) + + @classmethod + def tearDownClass(cls): + super().tearDownClass() + set_start_method(None, force=True) + def test_without_fork(self): mydata = local() mydata.number = 42