Skip to content

Commit 586dd3a

Browse files
committed
format, update
1 parent b610b2d commit 586dd3a

File tree

6 files changed

+79
-90
lines changed

6 files changed

+79
-90
lines changed

integration_tests/web/test_message_metadata.py

Lines changed: 72 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,27 @@
66

77
from integration_tests.env_variable_names import SLACK_SDK_TEST_BOT_TOKEN
88
from slack_sdk.models.metadata import (
9-
Metadata, EventAndEntityMetadata, EntityMetadata, ExternalRef,
10-
EntityPayload, EntityAttributes, EntityTitle, TaskEntityFields, EntityStringField,
11-
EntityTitle, EntityAttributes, EntityFullSizePreview,
12-
TaskEntityFields, EntityTypedField, EntityStringField, EntityTimestampField,
13-
EntityEditSupport, EntityEditTextConfig, EntityCustomField, EntityUserIDField,
14-
EntityIconField, ExternalRef as CustomExternalRef, EntityArrayItemField
9+
Metadata,
10+
EventAndEntityMetadata,
11+
EntityMetadata,
12+
ExternalRef,
13+
EntityPayload,
14+
EntityAttributes,
15+
EntityTitle,
16+
TaskEntityFields,
17+
EntityStringField,
18+
EntityTitle,
19+
EntityAttributes,
20+
EntityFullSizePreview,
21+
TaskEntityFields,
22+
EntityTypedField,
23+
EntityStringField,
24+
EntityTimestampField,
25+
EntityEditSupport,
26+
EntityEditTextConfig,
27+
EntityCustomField,
28+
EntityUserIDField,
29+
ExternalRef,
1530
)
1631
from slack_sdk.web import WebClient
1732

@@ -139,118 +154,92 @@ def test_publishing_entity_metadata(self):
139154
new_message = client.chat_postMessage(
140155
channel="C014KLZN9M0",
141156
text="Message with entity metadata",
142-
metadata={"entities": [{
143-
"entity_type": "slack#/entities/task",
144-
"url": "https://abc.com/123",
145-
"external_ref": {"id": "123"},
146-
"entity_payload": {
147-
"attributes": {
148-
"title": {"text": "My task"},
149-
"product_name": "We reference only"
150-
},
151-
"fields": {
152-
"due_date": {
153-
"value": "2026-06-06",
154-
"type": "slack#/types/date",
155-
"edit": {"enabled": True}
156-
},
157-
"created_by": {
158-
"type": "slack#/types/user",
159-
"user": {"user_id": "U014KLZE350"}
157+
metadata={
158+
"entities": [
159+
{
160+
"entity_type": "slack#/entities/task",
161+
"url": "https://abc.com/123",
162+
"external_ref": {"id": "123"},
163+
"entity_payload": {
164+
"attributes": {"title": {"text": "My task"}, "product_name": "We reference only"},
165+
"fields": {
166+
"due_date": {"value": "2026-06-06", "type": "slack#/types/date", "edit": {"enabled": True}},
167+
"created_by": {"type": "slack#/types/user", "user": {"user_id": "U014KLZE350"}},
168+
"date_created": {"value": 1760629278},
169+
},
170+
"custom_fields": [
171+
{
172+
"label": "img",
173+
"key": "img",
174+
"type": "slack#/types/image",
175+
"image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/korel-1YjNtFtJlMTaC26A/o.jpg",
176+
}
177+
],
160178
},
161-
"date_created": {"value": 1760629278}
162-
},
163-
"custom_fields": [
164-
{
165-
"label": "img",
166-
"key": "img",
167-
"type": "slack#/types/image",
168-
"image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/korel-1YjNtFtJlMTaC26A/o.jpg"
169-
}
170-
]
171-
}
172-
}]}
179+
}
180+
]
181+
},
173182
)
174-
183+
175184
self.assertIsNone(new_message.get("error"))
176185
self.assertIsNone(new_message.get("warning"))
177186

178187
def test_publishing_entity_metadata_using_models(self):
179-
188+
180189
# Build the metadata
181-
190+
182191
title = EntityTitle(text="My title")
183192
full_size_preview = EntityFullSizePreview(
184193
is_supported=True,
185194
preview_url="https://s3-media3.fl.yelpcdn.com/bphoto/c7ed05m9lC2EmA3Aruue7A/o.jpg",
186-
mime_type="image/jpeg"
187-
)
188-
attributes = EntityAttributes(
189-
title=title,
190-
product_name="My Product",
191-
full_size_preview=full_size_preview
195+
mime_type="image/jpeg",
192196
)
197+
attributes = EntityAttributes(title=title, product_name="My Product", full_size_preview=full_size_preview)
193198
description = EntityStringField(
194199
value="Description of the task.",
195200
long=True,
196-
edit=EntityEditSupport(
197-
enabled=True,
198-
text=EntityEditTextConfig(
199-
min_length=5,
200-
max_length=100
201-
)
202-
)
203-
)
204-
due_date = EntityTypedField(
205-
value="2026-06-06",
206-
type="slack#/types/date",
207-
edit=EntityEditSupport(enabled=True)
201+
edit=EntityEditSupport(enabled=True, text=EntityEditTextConfig(min_length=5, max_length=100)),
208202
)
203+
due_date = EntityTypedField(value="2026-06-06", type="slack#/types/date", edit=EntityEditSupport(enabled=True))
209204
created_by = EntityTypedField(
210205
type="slack#/types/user",
211206
user=EntityUserIDField(user_id="USLACKBOT"),
212207
)
213-
date_created = EntityTimestampField(
214-
value=1762450663,
215-
type="slack#/types/timestamp"
216-
)
217-
date_updated = EntityTimestampField(
218-
value=1762450663,
219-
type="slack#/types/timestamp"
220-
)
208+
date_created = EntityTimestampField(value=1762450663, type="slack#/types/timestamp")
209+
date_updated = EntityTimestampField(value=1762450663, type="slack#/types/timestamp")
221210
fields = TaskEntityFields(
222211
description=description,
223212
due_date=due_date,
224213
created_by=created_by,
225214
date_created=date_created,
226-
date_updated=date_updated
215+
date_updated=date_updated,
227216
)
228217
custom_fields = []
229-
custom_fields.append(EntityCustomField(
230-
label="My Image",
231-
key="my-image",
232-
type="slack#/types/image",
233-
image_url="https://s3-media3.fl.yelpcdn.com/bphoto/c7ed05m9lC2EmA3Aruue7A/o.jpg"
234-
))
235-
entity = EntityPayload(
236-
attributes=attributes,
237-
fields=fields,
238-
custom_fields=custom_fields
218+
custom_fields.append(
219+
EntityCustomField(
220+
label="My Image",
221+
key="my-image",
222+
type="slack#/types/image",
223+
image_url="https://s3-media3.fl.yelpcdn.com/bphoto/c7ed05m9lC2EmA3Aruue7A/o.jpg",
224+
)
239225
)
226+
entity = EntityPayload(attributes=attributes, fields=fields, custom_fields=custom_fields)
240227

241228
client: WebClient = WebClient(token=self.bot_token)
242229
new_message = client.chat_postMessage(
243-
channel="C014KLZN9M0",
230+
channel="#random",
244231
text="Message with entity metadata",
245232
metadata=EventAndEntityMetadata(
246233
entities=[
247234
EntityMetadata(
248-
entity_type="slack#/entities/task",
249-
external_ref=ExternalRef(id="abc123"),
250-
url="https://myappdomain.com",
251-
entity_payload=entity,
252-
)]),
235+
entity_type="slack#/entities/task",
236+
external_ref=ExternalRef(id="abc123"),
237+
url="https://myappdomain.com",
238+
entity_payload=entity,
239+
)
240+
]
241+
),
253242
)
254-
243+
255244
self.assertIsNone(new_message.get("error"))
256245
self.assertIsNone(new_message.get("warning"))

slack_sdk/models/metadata/__init__.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from typing import Dict, Any, Union, Optional, List
2-
from slack_sdk.models.basic_objects import JsonObject, EnumValidator, EMPTY_ALLOWED_TYPE_AND_PROPERTY_LIST
2+
from slack_sdk.models.basic_objects import JsonObject, EnumValidator
33

44

55
class Metadata(JsonObject):
@@ -30,7 +30,10 @@ def __repr__(self):
3030
return self.__str__()
3131

3232

33-
## Work object entity metadata
33+
#
34+
# Work object entity metadata
35+
# https://docs.slack.dev/messaging/work-objects/
36+
#
3437

3538

3639
"""Entity types"""
@@ -380,7 +383,7 @@ def __init__(
380383
text: str,
381384
url: Optional[str] = None,
382385
email: Optional[str] = None,
383-
icon: Optional[Union[Dict[str, Any], "EntityIconField"]] = None,
386+
icon: Optional[Union[Dict[str, Any], EntityIconField]] = None,
384387
**kwargs,
385388
):
386389
self.text = text
@@ -1170,6 +1173,7 @@ class EventAndEntityMetadata(JsonObject):
11701173
"""Message metadata with entities
11711174
11721175
https://docs.slack.dev/messaging/message-metadata/
1176+
https://docs.slack.dev/messaging/work-objects/
11731177
"""
11741178

11751179
attributes = {"event_type", "event_payload", "entities"}

slack_sdk/web/async_client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3070,7 +3070,6 @@ async def chat_update(
30703070
kwargs = _remove_none_values(kwargs)
30713071
_warn_if_message_text_content_is_missing("chat.update", kwargs)
30723072
# NOTE: intentionally using json over params for API methods using blocks/attachments
3073-
print("**** entering .....")
30743073
return await self.api_call("chat.update", json=kwargs)
30753074

30763075
async def conversations_acceptSharedInvite(

slack_sdk/web/base_client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,6 @@ def _perform_urllib_http_request(self, *, url: str, args: Dict[str, Dict[str, An
348348
Returns:
349349
dict {status: int, headers: Headers, body: str}
350350
"""
351-
352351
headers = args["headers"]
353352
body: Optional[Union[bytes, str]] = None
354353
if args["json"]:

slack_sdk/web/client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3060,7 +3060,6 @@ def chat_update(
30603060
kwargs = _remove_none_values(kwargs)
30613061
_warn_if_message_text_content_is_missing("chat.update", kwargs)
30623062
# NOTE: intentionally using json over params for API methods using blocks/attachments
3063-
print("**** entering .....")
30643063
return self.api_call("chat.update", json=kwargs)
30653064

30663065
def conversations_acceptSharedInvite(

slack_sdk/web/legacy_client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3008,7 +3008,6 @@ def chat_update(
30083008
kwargs = _remove_none_values(kwargs)
30093009
_warn_if_message_text_content_is_missing("chat.update", kwargs)
30103010
# NOTE: intentionally using json over params for API methods using blocks/attachments
3011-
print("**** entering .....")
30123011
return self.api_call("chat.update", json=kwargs)
30133012

30143013
def conversations_acceptSharedInvite(

0 commit comments

Comments
 (0)