chore: improve loudness call structure

This commit is contained in:
Matthias
2024-11-07 06:32:23 +01:00
parent d4cd5ba231
commit b6dfe01628
2 changed files with 24 additions and 22 deletions

View File

@@ -547,13 +547,13 @@ class Telegram(RPCHandler):
return None
return message
def _message_loudness(self, msg_type: RPCMessageType, exit_reason: str) -> str:
def _message_loudness(self, msg: RPCSendMsg) -> str:
"""Determine the loudness of the message - on, off or silent"""
default_noti = "on"
msg_type = msg_type
msg_type = msg["type"]
noti = ""
if msg_type in (RPCMessageType.EXIT, RPCMessageType.EXIT_FILL):
if msg["type"] == RPCMessageType.EXIT or msg["type"] == RPCMessageType.EXIT_FILL:
sell_noti = (
self._config["telegram"].get("notification_settings", {}).get(str(msg_type), {})
)
@@ -563,7 +563,7 @@ class Telegram(RPCHandler):
noti = sell_noti
else:
default_noti = sell_noti.get("*", default_noti)
noti = sell_noti.get(str(exit_reason), default_noti)
noti = sell_noti.get(str(msg["exit_reason"]), default_noti)
else:
noti = (
self._config["telegram"]
@@ -575,7 +575,7 @@ class Telegram(RPCHandler):
def send_msg(self, msg: RPCSendMsg) -> None:
"""Send a message to telegram channel"""
noti = self._message_loudness(msg["type"], msg.get("exit_reason", ""))
noti = self._message_loudness(msg)
if noti == "off":
logger.info(f"Notification '{msg['type']}' not sent.")

View File

@@ -2923,21 +2923,23 @@ def test_noficiation_settings(default_conf_usdt, mocker):
}
)
assert telegram._message_loudness(RPCMessageType.ENTRY, "") == "silent"
assert telegram._message_loudness(RPCMessageType.ENTRY_FILL, "") == "on"
assert telegram._message_loudness(RPCMessageType.EXIT, "") == "on"
# Default to silent due to "*" definition
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "") == "silent"
assert telegram._message_loudness(RPCMessageType.PROTECTION_TRIGGER, "") == "off"
assert telegram._message_loudness(RPCMessageType.EXIT, "roi") == "silent"
assert telegram._message_loudness(RPCMessageType.EXIT, "partial_exit") == "off"
# Not given key defaults to on
assert telegram._message_loudness(RPCMessageType.EXIT, "cust_exit112") == "on"
loudness = telegram._message_loudness
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "roi") == "silent"
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "partial_exit") == "off"
assert loudness({"type": RPCMessageType.ENTRY, "exit_reason": ""}) == "silent"
assert loudness({"type": RPCMessageType.ENTRY_FILL, "exit_reason": ""}) == "on"
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": ""}) == "on"
# Default to silent due to "*" definition
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "cust_exit112") == "silent"
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": ""}) == "silent"
assert loudness({"type": RPCMessageType.PROTECTION_TRIGGER, "exit_reason": ""}) == "off"
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "roi"}) == "silent"
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "partial_exit"}) == "off"
# Not given key defaults to on
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "cust_exit112"}) == "on"
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "roi"}) == "silent"
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "partial_exit"}) == "off"
# Default to silent due to "*" definition
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "cust_exit112"}) == "silent"
# Simplified setup for exit
telegram._config["telegram"].update(
@@ -2960,8 +2962,8 @@ def test_noficiation_settings(default_conf_usdt, mocker):
}
)
assert telegram._message_loudness(RPCMessageType.EXIT_FILL, "roi") == "on"
assert loudness({"type": RPCMessageType.EXIT_FILL, "exit_reason": "roi"}) == "on"
# All regular exits are off
assert telegram._message_loudness(RPCMessageType.EXIT, "roi") == "off"
assert telegram._message_loudness(RPCMessageType.EXIT, "partial_exit") == "off"
assert telegram._message_loudness(RPCMessageType.EXIT, "cust_exit112") == "off"
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "roi"}) == "off"
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "partial_exit"}) == "off"
assert loudness({"type": RPCMessageType.EXIT, "exit_reason": "cust_exit112"}) == "off"