Improved Google Chat thread handling (#1376)

pull/1378/head
Chris Caron 2025-07-30 12:07:26 -04:00 committed by GitHub
parent 8e1dad9f79
commit 18255ebd4c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 4 deletions

View File

@ -223,7 +223,15 @@ class NotifyGoogleChat(NotifyBase):
}
if self.thread_key:
params["threadKey"] = self.thread_key
params.update({
"messageReplyOption": "REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD",
})
payload.update({
"thread": {
"thread_key": self.thread_key,
}
})
self.logger.debug(
"Google Chat POST URL:"

View File

@ -191,13 +191,14 @@ def test_plugin_google_chat_general(mock_post):
params = mock_post.call_args_list[0][1]["params"]
assert params.get("token") == token
assert params.get("key") == key
assert "threadKey" not in params
assert "messageReplyOption" not in params
payload = loads(mock_post.call_args_list[0][1]["data"])
assert "thread" not in payload
assert payload["text"] == "title\r\ntest body"
mock_post.reset_mock()
# Test our messaging with the threadKey
# Test our messaging with the thread_key
obj = Apprise.instantiate(f"gchat://{workspace}/{key}/{token}/{threadkey}")
assert isinstance(obj, NotifyGoogleChat)
assert (
@ -216,9 +217,12 @@ def test_plugin_google_chat_general(mock_post):
params = mock_post.call_args_list[0][1]["params"]
assert params.get("token") == token
assert params.get("key") == key
assert params.get("threadKey") == threadkey
assert params.get("messageReplyOption") == \
"REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD"
payload = loads(mock_post.call_args_list[0][1]["data"])
assert "thread" in payload
assert payload["text"] == "title\r\ntest body"
assert payload["thread"].get("thread_key") == threadkey
def test_plugin_google_chat_edge_case():