Skip to content

Commit df3eb55

Browse files
committed
Add missing properties in Audit Logs API responses
1 parent 5737bfa commit df3eb55

File tree

4 files changed

+92
-19
lines changed

4 files changed

+92
-19
lines changed

slack_sdk/audit_logs/v1/logs.py

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,19 @@ def __init__(
150150
self.unknown_fields = kwargs
151151

152152

153+
class FeatureEnablement:
154+
enabled: Optional[bool]
155+
156+
def __init__(
157+
self,
158+
*,
159+
enabled: Optional[bool] = None,
160+
**kwargs,
161+
) -> None:
162+
self.enabled = enabled
163+
self.unknown_fields = kwargs
164+
165+
153166
class Details:
154167
name: Optional[str]
155168
new_value: Optional[Union[str, List[str], Dict[str, Any]]]
@@ -218,6 +231,9 @@ class Details:
218231
creator: Optional[str]
219232
team: Optional[str]
220233
app_id: Optional[str]
234+
enable_at_here: Optional[FeatureEnablement]
235+
enable_at_channel: Optional[FeatureEnablement]
236+
can_huddle: Optional[FeatureEnablement]
221237

222238
def __init__(
223239
self,
@@ -288,6 +304,9 @@ def __init__(
288304
creator: Optional[str] = None,
289305
team: Optional[str] = None,
290306
app_id: Optional[str] = None,
307+
enable_at_here: Optional[FeatureEnablement] = None,
308+
enable_at_channel: Optional[FeatureEnablement] = None,
309+
can_huddle: Optional[FeatureEnablement] = None,
291310
**kwargs,
292311
) -> None:
293312
self.name = name
@@ -299,8 +318,12 @@ def __init__(
299318
self.non_sso_only = non_sso_only
300319
self.type = type
301320
self.is_workflow = is_workflow
302-
self.inviter = inviter if isinstance(inviter, User) else User(**inviter)
303-
self.kicker = kicker if isinstance(kicker, User) else User(**kicker)
321+
self.inviter = (
322+
inviter if inviter is None or isinstance(inviter, User) else User(**inviter)
323+
)
324+
self.kicker = (
325+
kicker if kicker is None or isinstance(kicker, User) else User(**kicker)
326+
)
304327
self.shared_to = shared_to
305328
self.reason = reason
306329
self.origin_team = origin_team
@@ -347,22 +370,24 @@ def __init__(
347370
self.is_token_rotation_enabled_app = is_token_rotation_enabled_app
348371
self.old_retention_policy = (
349372
old_retention_policy
350-
if isinstance(old_retention_policy, RetentionPolicy)
373+
if old_retention_policy is None
374+
or isinstance(old_retention_policy, RetentionPolicy)
351375
else RetentionPolicy(**old_retention_policy)
352376
)
353377
self.new_retention_policy = (
354378
new_retention_policy
355-
if isinstance(new_retention_policy, RetentionPolicy)
379+
if new_retention_policy is None
380+
or isinstance(new_retention_policy, RetentionPolicy)
356381
else RetentionPolicy(**new_retention_policy)
357382
)
358383
self.who_can_post = (
359384
who_can_post
360-
if isinstance(who_can_post, ConversationPref)
385+
if who_can_post is None or isinstance(who_can_post, ConversationPref)
361386
else ConversationPref(**who_can_post)
362387
)
363388
self.can_thread = (
364389
can_thread
365-
if isinstance(can_thread, ConversationPref)
390+
if can_thread is None or isinstance(can_thread, ConversationPref)
366391
else ConversationPref(**can_thread)
367392
)
368393
self.is_external_limited = is_external_limited
@@ -373,6 +398,22 @@ def __init__(
373398
self.creator = creator
374399
self.team = team
375400
self.app_id = app_id
401+
self.enable_at_here = (
402+
enable_at_here
403+
if enable_at_here is None or isinstance(enable_at_here, FeatureEnablement)
404+
else FeatureEnablement(**enable_at_here)
405+
)
406+
self.enable_at_channel = (
407+
enable_at_channel
408+
if enable_at_channel is None
409+
or isinstance(enable_at_channel, FeatureEnablement)
410+
else FeatureEnablement(**enable_at_channel)
411+
)
412+
self.can_huddle = (
413+
can_huddle
414+
if can_huddle is None or isinstance(can_huddle, FeatureEnablement)
415+
else FeatureEnablement(**can_huddle)
416+
)
376417

377418

378419
class Channel:

tests/slack_sdk/web/test_web_client_issue_891.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,35 @@ def test_missing_text_warning_chat_update(self):
4343
def test_missing_fallback_warning_chat_postMessage(self):
4444
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
4545
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
46-
resp = client.chat_postMessage(channel="C111", blocks=[], attachments=[{"text": "hi"}])
46+
resp = client.chat_postMessage(
47+
channel="C111", blocks=[], attachments=[{"text": "hi"}]
48+
)
4749
self.assertIsNone(resp["error"])
4850

4951
def test_missing_fallback_warning_chat_postEphemeral(self):
5052
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
5153
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
52-
resp = client.chat_postEphemeral(channel="C111", user="U111", blocks=[], attachments=[{"text": "hi"}])
54+
resp = client.chat_postEphemeral(
55+
channel="C111", user="U111", blocks=[], attachments=[{"text": "hi"}]
56+
)
5357
self.assertIsNone(resp["error"])
5458

5559
def test_missing_fallback_warning_chat_scheduleMessage(self):
5660
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
5761
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
5862
resp = client.chat_scheduleMessage(
59-
channel="C111", post_at="299876400", text="", blocks=[], attachments=[{"text": "hi"}]
63+
channel="C111",
64+
post_at="299876400",
65+
text="",
66+
blocks=[],
67+
attachments=[{"text": "hi"}],
6068
)
6169
self.assertIsNone(resp["error"])
6270

6371
def test_missing_fallback_warning_chat_update(self):
6472
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
6573
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
66-
resp = client.chat_update(channel="C111", ts="111.222", blocks=[], attachments=[{"text": "hi"}])
74+
resp = client.chat_update(
75+
channel="C111", ts="111.222", blocks=[], attachments=[{"text": "hi"}]
76+
)
6777
self.assertIsNone(resp["error"])

tests/slack_sdk_async/web/test_web_client_issue_891.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ async def test_missing_text_warning_chat_postMessage(self):
2626
async def test_missing_text_warning_chat_postEphemeral(self):
2727
client = AsyncWebClient(base_url="http://localhost:8888", token="xoxb-api_test")
2828
with self.assertWarnsRegex(UserWarning, "`text` argument is missing"):
29-
resp = await client.chat_postEphemeral(channel="C111", user="U111", blocks=[])
29+
resp = await client.chat_postEphemeral(
30+
channel="C111", user="U111", blocks=[]
31+
)
3032
self.assertIsNone(resp["error"])
3133

3234
@async_test
@@ -49,28 +51,38 @@ async def test_missing_text_warning_chat_update(self):
4951
async def test_missing_fallback_warning_chat_postMessage(self):
5052
client = AsyncWebClient(base_url="http://localhost:8888", token="xoxb-api_test")
5153
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
52-
resp = await client.chat_postMessage(channel="C111", blocks=[], attachments=[{"text": "hi"}])
54+
resp = await client.chat_postMessage(
55+
channel="C111", blocks=[], attachments=[{"text": "hi"}]
56+
)
5357
self.assertIsNone(resp["error"])
5458

5559
@async_test
5660
async def test_missing_fallback_warning_chat_postEphemeral(self):
5761
client = AsyncWebClient(base_url="http://localhost:8888", token="xoxb-api_test")
5862
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
59-
resp = await client.chat_postEphemeral(channel="C111", user="U111", blocks=[], attachments=[{"text": "hi"}])
63+
resp = await client.chat_postEphemeral(
64+
channel="C111", user="U111", blocks=[], attachments=[{"text": "hi"}]
65+
)
6066
self.assertIsNone(resp["error"])
6167

6268
@async_test
6369
async def test_missing_fallback_warning_chat_scheduleMessage(self):
6470
client = AsyncWebClient(base_url="http://localhost:8888", token="xoxb-api_test")
6571
with self.assertWarnsRegex(UserWarning, "`text` argument is missing"):
6672
resp = await client.chat_scheduleMessage(
67-
channel="C111", post_at="299876400", text="", blocks=[], attachments=[{"text": "hi"}]
73+
channel="C111",
74+
post_at="299876400",
75+
text="",
76+
blocks=[],
77+
attachments=[{"text": "hi"}],
6878
)
6979
self.assertIsNone(resp["error"])
7080

7181
@async_test
7282
async def test_missing_fallback_warning_chat_update(self):
7383
client = AsyncWebClient(base_url="http://localhost:8888", token="xoxb-api_test")
7484
with self.assertWarnsRegex(UserWarning, "`text` argument is missing"):
75-
resp = await client.chat_update(channel="C111", ts="111.222", blocks=[], attachments=[{"text": "hi"}])
85+
resp = await client.chat_update(
86+
channel="C111", ts="111.222", blocks=[], attachments=[{"text": "hi"}]
87+
)
7688
self.assertIsNone(resp["error"])

tests/web/test_web_client_issue_891.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,35 @@ def test_missing_text_warning_chat_update(self):
4343
def test_missing_fallback_warning_chat_postMessage(self):
4444
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
4545
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
46-
resp = client.chat_postMessage(channel="C111", blocks=[], attachments=[{"text": "hi"}])
46+
resp = client.chat_postMessage(
47+
channel="C111", blocks=[], attachments=[{"text": "hi"}]
48+
)
4749
self.assertIsNone(resp["error"])
4850

4951
def test_missing_fallback_warning_chat_postEphemeral(self):
5052
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
5153
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
52-
resp = client.chat_postEphemeral(channel="C111", user="U111", blocks=[], attachments=[{"text": "hi"}])
54+
resp = client.chat_postEphemeral(
55+
channel="C111", user="U111", blocks=[], attachments=[{"text": "hi"}]
56+
)
5357
self.assertIsNone(resp["error"])
5458

5559
def test_missing_fallback_warning_chat_scheduleMessage(self):
5660
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
5761
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
5862
resp = client.chat_scheduleMessage(
59-
channel="C111", post_at="299876400", text="", blocks=[], attachments=[{"text": "hi"}]
63+
channel="C111",
64+
post_at="299876400",
65+
text="",
66+
blocks=[],
67+
attachments=[{"text": "hi"}],
6068
)
6169
self.assertIsNone(resp["error"])
6270

6371
def test_missing_fallback_warning_chat_update(self):
6472
client = WebClient(base_url="http://localhost:8888", token="xoxb-api_test")
6573
with self.assertWarnsRegex(UserWarning, "`fallback` argument is missing"):
66-
resp = client.chat_update(channel="C111", ts="111.222", blocks=[], attachments=[{"text": "hi"}])
74+
resp = client.chat_update(
75+
channel="C111", ts="111.222", blocks=[], attachments=[{"text": "hi"}]
76+
)
6777
self.assertIsNone(resp["error"])

0 commit comments

Comments
 (0)