details:   https://code.tryton.org/tryton/commit/2a01eb75fb1e
branch:    default
user:      Cédric Krier <[email protected]>
date:      Wed Nov 04 16:23:53 2026 +0100
description:
        Test binary deletion from filestore without prefix

        #15216
diffstat:

 trytond/trytond/tests/field_binary.py      |   3 +
 trytond/trytond/tests/test_field_binary.py |  53 ++++++++++++++++++++++++-----
 2 files changed, 46 insertions(+), 10 deletions(-)

diffs (114 lines):

diff -r d05be8c270ac -r 2a01eb75fb1e trytond/trytond/tests/field_binary.py
--- a/trytond/trytond/tests/field_binary.py     Wed Nov 04 16:11:06 2026 +0100
+++ b/trytond/trytond/tests/field_binary.py     Wed Nov 04 16:23:53 2026 +0100
@@ -45,6 +45,9 @@
     deleted_binary = fields.Binary(
         'Deleted Binary', file_id='deleted_binary_id', store_prefix='test')
     deleted_binary_id = fields.Char('Deleted Binary ID')
+    deleted_binary_no_prefix = fields.Binary(
+        "Deleted Binary", file_id='deleted_binary_no_prefix_id')
+    deleted_binary_no_prefix_id = fields.Char("Deleted Binary ID")
 
 
 def register(module):
diff -r d05be8c270ac -r 2a01eb75fb1e trytond/trytond/tests/test_field_binary.py
--- a/trytond/trytond/tests/test_field_binary.py        Wed Nov 04 16:11:06 
2026 +0100
+++ b/trytond/trytond/tests/test_field_binary.py        Wed Nov 04 16:23:53 
2026 +0100
@@ -282,54 +282,87 @@
     @with_transaction()
     def test_set_to_None(self):
         "Test setting a binary field with a filestore to None"
+        for prefix in ['', 'test']:
+            with self.subTest(prefix=prefix):
+                self._test_set_to_None(prefix)
+
+    def _test_set_to_None(self, prefix=''):
         pool = Pool()
         Queue = pool.get('ir.filestore.queue')
         Binary = pool.get('test.binary_filestorage')
 
-        binary = Binary(deleted_binary=b'foo')
+        if prefix:
+            field_name = 'deleted_binary'
+        else:
+            field_name = 'deleted_binary_no_prefix'
+        file_id = getattr(Binary, field_name).file_id
+
+        binary = Binary()
+        setattr(binary, field_name, b'foo')
         binary.save()
-        file_id = binary.deleted_binary_id
 
-        binary.deleted_binary = None
+        setattr(binary, field_name, None)
         binary.save()
         Queue.remove()
 
         with self.assertRaises(IOError):
-            filestore.get(file_id, prefix='test')
+            filestore.get(file_id, prefix=prefix)
         self.assertEqual(Queue.search([]), [])
 
     @with_transaction()
     def test_delete(self):
         "Test the delete method of binary fields"
+        for prefix in ['', 'test']:
+            with self.subTest(prefix=prefix):
+                self._test_set_to_None(prefix)
+
+    def _test_delete(self, prefix=''):
         pool = Pool()
         Queue = pool.get('ir.filestore.queue')
         Binary = pool.get('test.binary_filestorage')
 
-        binary = Binary(deleted_binary=b'foo')
+        if prefix:
+            field_name = 'deleted_binary'
+        else:
+            field_name = 'deleted_binary_no_prefix'
+        file_id = getattr(Binary, field_name).file_id
+
+        binary = Binary()
+        setattr(binary, field_name, b'foo')
         binary.save()
-        file_id = binary.deleted_binary_id
 
         Binary.delete([binary])
         Queue.remove()
 
         with self.assertRaises(IOError):
-            filestore.get(file_id, prefix='test')
+            filestore.get(file_id, prefix=prefix)
         self.assertEqual(Queue.search([]), [])
 
     @with_transaction()
     def test_delete_copy(self):
         "Test the delete method of copied binary fields"
+        for prefix in ['', 'test']:
+            with self.subTest(prefix=prefix):
+                self._test_set_to_None(prefix)
+
+    def _test_delete_copy(self, prefix=''):
         pool = Pool()
         Queue = pool.get('ir.filestore.queue')
         Binary = pool.get('test.binary_filestorage')
 
-        binary = Binary(deleted_binary=b'foo')
+        if prefix:
+            field_name = 'deleted_binary'
+        else:
+            field_name = 'deleted_binary_no_prefix'
+        file_id = getattr(Binary, field_name).file_id
+
+        binary = Binary()
+        setattr(binary, field_name, b'foo')
         binary.save()
-        file_id = binary.deleted_binary_id
         copy, = Binary.copy([binary])
 
         Binary.delete([binary])
         Queue.remove()
 
-        self.assertTrue(filestore.get(file_id, prefix='test'))
+        self.assertTrue(filestore.get(file_id, prefix=prefix))
         self.assertEqual(Queue.search([]), [])

Reply via email to