On attempt to b64decode the content_bytes of a file attachment the following error occurs:
binascii.Error: Only base64 data is allowed
The same test provided below passes with msgraph-sdk <= 1.58.0
The code comments still suggest b64-encoded content:
FileAttachment.content_bytes returns b64-encoded data.
from base64 import b64decode
from typing import cast
from azure.core.credentials import TokenCredential
from azure.identity import ClientSecretCredential
from msgraph import GraphServiceClient
from msgraph.generated.models.attachment import Attachment
from msgraph.generated.models.file_attachment import FileAttachment
from settings import settings
credentials = cast(
TokenCredential,
ClientSecretCredential(
tenant_id=settings().microsoft_graph_tenant_id,
client_id=settings().microsoft_graph_client_id,
client_secret=settings().microsoft_graph_client_secret,
),
)
scopes = ["https://graph.microsoft.com/.default"]
client = GraphServiceClient(credentials, scopes)
async def get_mail_attachments(
mailbox: str, mail_id: str
) -> list[Attachment]:
response = (
await client.users.by_user_id(mailbox)
.messages.by_message_id(mail_id)
.attachments.get()
)
attachments: list[Attachment] = response.value or []
return attachments
async def test_attachments():
attachments = await get_mail_attachments("my-mailbox", "my-mail-id")
assert len(attachments) >= 1
first_attachment = attachments[0]
assert isinstance(first_attachment, FileAttachment)
b64decode(first_attachment.content_bytes, validate=True)
Describe the bug
On attempt to b64decode the content_bytes of a file attachment the following error occurs:
binascii.Error: Only base64 data is allowedThe same test provided below passes with msgraph-sdk <= 1.58.0
The code comments still suggest b64-encoded content:
Expected behavior
FileAttachment.content_bytes returns b64-encoded data.
How to reproduce
SDK Version
1.60.0
Latest version known to work for scenario above?
1.58.0
Known Workarounds
No response
Debug output
Click to expand log
```