@@ -337,24 +337,44 @@ def test_force_storage_to_db(self):
337337 attachment = self .ir_attachment_model .create (
338338 {"name" : "test.txt" , "raw" : b"content" }
339339 )
340+ attachment_res_field = self .ir_attachment_model .create (
341+ {
342+ "name" : "field.txt" ,
343+ "raw" : "Attachment linked to a field" ,
344+ "res_model" : "res.partner" ,
345+ "res_field" : "name" ,
346+ }
347+ )
340348 self .env .flush_all ()
341349 self .assertTrue (attachment .store_fname )
342350 self .assertFalse (attachment .db_datas )
343351 store_fname = attachment .store_fname
352+ store_fname_res_field = attachment_res_field .store_fname
344353 # we change the rules to force the storage in db for text/plain
345354 self .temp_backend .force_db_for_default_attachment_rules = '{"text/plain": 0}'
346355 attachment .force_storage_to_db_for_special_fields ()
347356 self .assertFalse (attachment .store_fname )
348357 self .assertEqual (attachment .db_datas , b"content" )
358+ self .assertFalse (attachment_res_field .store_fname )
359+ self .assertEqual (attachment_res_field .db_datas , b"Attachment linked to a field" )
349360 # we check that the file is marked for GC
350361 gc_files = self .gc_file_model .search ([]).mapped ("store_fname" )
351362 self .assertIn (store_fname , gc_files )
363+ self .assertIn (store_fname_res_field , gc_files )
352364
353365 @mute_logger ("odoo.addons.fs_attachment.models.ir_attachment" )
354366 def test_force_storage_to_fs (self ):
355367 attachment = self .ir_attachment_model .create (
356368 {"name" : "test.txt" , "raw" : b"content" }
357369 )
370+ attachment_res_field = self .ir_attachment_model .create (
371+ {
372+ "name" : "field.txt" ,
373+ "raw" : "Attachment linked to a field" ,
374+ "res_model" : "res.partner" ,
375+ "res_field" : "name" ,
376+ }
377+ )
358378 self .env .flush_all ()
359379 fs_path = self .ir_attachment_model ._filestore () + "/" + attachment .store_fname
360380 self .assertTrue (os .path .exists (fs_path ))
@@ -371,8 +391,13 @@ def test_force_storage_to_fs(self):
371391 clean_fs .assert_called_once ()
372392 # files into the filestore must be moved to our filesystem storage
373393 filename = f"test-{ attachment .id } -0.txt"
394+ filename_res_field = f"field-{ attachment_res_field .id } -0.txt"
374395 self .assertEqual (attachment .store_fname , f"tmp_dir://{ filename } " )
396+ self .assertEqual (
397+ attachment_res_field .store_fname , f"tmp_dir://{ filename_res_field } "
398+ )
375399 self .assertIn (filename , os .listdir (self .temp_dir ))
400+ self .assertIn (filename_res_field , os .listdir (self .temp_dir ))
376401
377402 def test_storage_use_filename_obfuscation (self ):
378403 self .temp_backend .base_url = "https://acsone.eu/media"
0 commit comments