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([]), [])