Skip to content

Commit b96d2c0

Browse files
committed
refac
1 parent cb679b3 commit b96d2c0

3 files changed

Lines changed: 1075 additions & 1063 deletions

File tree

core/attachment_storage.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ def save_attachment(
163163
expires_at = datetime.now() + timedelta(seconds=self.expiration_seconds)
164164
self._metadata[file_id] = {
165165
"file_path": str(file_path),
166-
"filename": filename or f"attachment{extension}",
166+
"filename": save_name,
167+
"original_filename": filename,
167168
"mime_type": mime_type or "application/octet-stream",
168169
"size": len(file_bytes),
169170
"created_at": datetime.now(),

tests/gmail/test_attachment_fix.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,25 @@ def test_save_attachment_sanitizes_windows_reserved_filenames(
112112
assert saved_bytes == payload
113113

114114

115+
def test_save_attachment_metadata_filename_matches_saved_file(isolated_storage):
116+
"""Attachment metadata should report the on-disk filename."""
117+
payload = b"metadata filename check"
118+
b64_data = base64.urlsafe_b64encode(payload).decode()
119+
120+
result = isolated_storage.save_attachment(
121+
b64_data, filename="RE: Foo?.eml", mime_type="message/rfc822"
122+
)
123+
saved_name = os.path.basename(result.path)
124+
metadata = isolated_storage.get_attachment_metadata(result.file_id)
125+
126+
assert metadata["filename"] == saved_name
127+
assert metadata["original_filename"] == "RE: Foo?.eml"
128+
assert metadata["filename"].startswith("RE_ Foo_")
129+
assert metadata["filename"].endswith(".eml")
130+
assert ":" not in metadata["filename"]
131+
assert "?" not in metadata["filename"]
132+
133+
115134
@pytest.mark.parametrize(
116135
"payload",
117136
[

0 commit comments

Comments
 (0)