diff --git a/slack_sdk/models/attachments/__init__.py b/slack_sdk/models/attachments/__init__.py index 5ba0c273a..fc2eb4ad6 100644 --- a/slack_sdk/models/attachments/__init__.py +++ b/slack_sdk/models/attachments/__init__.py @@ -433,24 +433,33 @@ def to_dict(self) -> dict: # skipcq: PYL-W0221 class BlockAttachment(Attachment): - attributes = {"color"} blocks: List[Block] - def __init__(self, *, blocks: Sequence[Block], color: Optional[str] = None): + @property + def attributes(self): + return super().attributes.union({"blocks", "color"}) + + def __init__( + self, + *, + blocks: Sequence[Block], + color: Optional[str] = None, + fallback: Optional[str] = None, + ): """ - A bridge between legacy attachments and blockkit formatting - pass a list of + A bridge between legacy attachments and Block Kit formatting - pass a list of Block objects directly to this attachment. https://api.slack.com/reference/messaging/attachments#fields Args: blocks: a sequence of Block objects - color: Changes the color of the border on the left side of this attachment from the default gray. Can either be one of "good" (green), "warning" (yellow), "danger" (red), or any hex color code (eg. #439FE0) + fallback: fallback text """ - super().__init__(text="", color=color) + super().__init__(text="", fallback=fallback, color=color) self.blocks = list(blocks) @JsonValidator("fields attribute cannot be populated on BlockAttachment") diff --git a/tests/web/classes/test_attachments.py b/tests/web/classes/test_attachments.py index 29b8ed95d..33ab4b2d9 100644 --- a/tests/web/classes/test_attachments.py +++ b/tests/web/classes/test_attachments.py @@ -218,6 +218,6 @@ def test_basic_json(self): ] self.assertDictEqual( - BlockAttachment(blocks=blocks).to_dict(), - {"blocks": [b.to_dict() for b in blocks]}, + BlockAttachment(fallback="foo", blocks=blocks).to_dict(), + {"fallback": "foo", "blocks": [b.to_dict() for b in blocks]}, )