Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions fs_attachment/models/ir_attachment.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,11 +518,15 @@ def _fs_parse_store_fname(
:param fname: the fname to parse
:param base: if True, return the base filesystem
"""
partition = fname.partition("://")
storage_code = partition[0]
fs = self._get_fs_storage_for_code(storage_code)
fname = partition[2]
return fs, storage_code, fname
storage_code = None
fs = None
file_name = fname
if "://" in fname:
partition = fname.partition("://")
storage_code = partition[0]
fs = self._get_fs_storage_for_code(storage_code)
file_name = partition[2]
return fs, storage_code, file_name

@api.model
def _parse_fs_filename(self, filename: str) -> tuple[str, int, int, str] | None:
Expand Down
22 changes: 22 additions & 0 deletions fs_attachment/tests/test_fs_attachment.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,28 @@


class TestFSAttachment(TestFSAttachmentCommon):
def test_fs_parse_store_fname(self):
raw_fname = "fc/fcc92eb498d207046dcf79f50badd1041535626c"
fs, storage_code, file_name = self.ir_attachment_model._fs_parse_store_fname(
raw_fname
)
self.assertFalse(fs)
self.assertFalse(storage_code)
self.assertEqual(file_name, raw_fname)

@mock.patch(
"odoo.addons.fs_storage.models.fs_storage.FSStorage.get_fs_by_code",
return_value="FS_MOCK",
)
def test_fs_parse_store_fname_azure(self, mock_fs_storage):
azure_fname = "azure://b1/e9/screenshot-2026-06-30-190529-700499-0.png"
fs, storage_code, file_name = self.ir_attachment_model._fs_parse_store_fname(
azure_fname
)
self.assertIs(fs, "FS_MOCK")
self.assertEqual(storage_code, "azure")
self.assertEqual(file_name, "b1/e9/screenshot-2026-06-30-190529-700499-0.png")

def test_create_attachment_explicit_location(self):
content = b"This is a test attachment"
attachment = (
Expand Down
Loading