From 9df7de274a00f7e46aa791d9b259d65dbb3beee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 5 Jan 2025 16:02:39 +0100 Subject: [PATCH] Allow running field binary tests with a non memory SQLite database By setting the filestore path as a global variable, we can modify it for the test without changing the database path where the SQLite databases are stored. Closes #13792 (grafted from b431c4c5ddcf6556dcfd502bad748e18d596040a) --HG-- branch : 7.0 --- trytond/trytond/filestore.py | 7 ++++--- trytond/trytond/tests/test_field_binary.py | 9 +++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/trytond/trytond/filestore.py b/trytond/trytond/filestore.py index 814643bfae..fa08aaca9b 100644 --- a/trytond/trytond/filestore.py +++ b/trytond/trytond/filestore.py @@ -8,6 +8,8 @@ from trytond.tools import resolve __all__ = ['filestore'] +PATH = os.path.normpath(config.get('database', 'path')) + class FileStore(object): @@ -51,10 +53,9 @@ class FileStore(object): return [self.set(d, prefix) for d in data] def _filename(self, id, prefix): - path = os.path.normpath(config.get('database', 'path')) - filename = os.path.join(path, prefix, id[0:2], id[2:4], id) + filename = os.path.join(PATH, prefix, id[0:2], id[2:4], id) filename = os.path.normpath(filename) - if not filename.startswith(path): + if not filename.startswith(PATH): raise ValueError('Bad prefix') return filename diff --git a/trytond/trytond/tests/test_field_binary.py b/trytond/trytond/tests/test_field_binary.py index 45d47ad72f..872f45c2e3 100644 --- a/trytond/trytond/tests/test_field_binary.py +++ b/trytond/trytond/tests/test_field_binary.py @@ -6,7 +6,7 @@ import unittest from sql import Literal -from trytond.config import config +from trytond import filestore from trytond.model import fields from trytond.model.exceptions import ( RequiredValidationError, SQLConstraintError) @@ -25,10 +25,11 @@ class FieldBinaryTestCase(unittest.TestCase): activate_module('tests') def setUp(self): - path = config.get('database', 'path') + super().setUp() + path = filestore.PATH dtemp = tempfile.mkdtemp() - config.set('database', 'path', dtemp) - self.addCleanup(config.set, 'database', 'path', path) + filestore.PATH = dtemp + self.addCleanup(setattr, filestore, 'PATH', path) self.addCleanup(shutil.rmtree, dtemp) @with_transaction()