Skip to content

Commit e43637c

Browse files
committed
Rename strategy plugin alert settings
1 parent cecc2b0 commit e43637c

10 files changed

Lines changed: 101 additions & 101 deletions

src/quant_platform_kit/notifications/strategy_plugin_alerts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ def _resolve_channels(
327327
) -> tuple[str, ...]:
328328
raw_channels = channels
329329
if raw_channels is None:
330-
raw_channels = _get_value(notification_settings, "crisis_alert_channels", None)
330+
raw_channels = _get_value(notification_settings, "strategy_plugin_alert_channels", None)
331331
if raw_channels in (None, "", (), []):
332332
raw_channels = (_CHANNEL_EMAIL, _CHANNEL_SMS, _CHANNEL_PUSH, _CHANNEL_TELEGRAM)
333333
return _normalize_channels(raw_channels)

src/quant_platform_kit/notifications/strategy_plugin_email.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,31 +47,31 @@ def from_object(cls, value: object) -> "StrategyPluginEmailSettings":
4747
return value
4848
return cls(
4949
recipients=tuple(
50-
parse_email_recipients(_get_value(value, "crisis_alert_email_recipients", ()))
50+
parse_email_recipients(_get_value(value, "strategy_plugin_alert_email_recipients", ()))
5151
),
52-
sender_email=_first_non_empty(_get_value(value, "crisis_alert_email_sender_email")),
53-
sender_password=_get_value(value, "crisis_alert_email_sender_password"),
52+
sender_email=_first_non_empty(_get_value(value, "strategy_plugin_alert_email_sender_email")),
53+
sender_password=_get_value(value, "strategy_plugin_alert_email_sender_password"),
5454
smtp_host=_first_non_empty(
55-
_get_value(value, "crisis_alert_email_smtp_host")
55+
_get_value(value, "strategy_plugin_alert_email_smtp_host")
5656
)
5757
or _DEFAULT_EMAIL_SMTP_HOST,
5858
smtp_port=_coerce_int(
59-
_get_value(value, "crisis_alert_email_smtp_port"),
59+
_get_value(value, "strategy_plugin_alert_email_smtp_port"),
6060
_DEFAULT_EMAIL_SMTP_PORT,
6161
),
6262
smtp_security=_coerce_smtp_security(
63-
_get_value(value, "crisis_alert_email_smtp_security")
63+
_get_value(value, "strategy_plugin_alert_email_smtp_security")
6464
),
6565
)
6666

6767
def missing_fields(self) -> tuple[str, ...]:
6868
missing: list[str] = []
6969
if not parse_email_recipients(self.recipients):
70-
missing.append("CRISIS_ALERT_EMAIL_RECIPIENTS")
70+
missing.append("STRATEGY_PLUGIN_ALERT_EMAIL_RECIPIENTS")
7171
if not str(self.sender_email or "").strip():
72-
missing.append("CRISIS_ALERT_EMAIL_SENDER_EMAIL")
72+
missing.append("STRATEGY_PLUGIN_ALERT_EMAIL_SENDER_EMAIL")
7373
if not str(self.sender_password or "").strip():
74-
missing.append("CRISIS_ALERT_EMAIL_SENDER_PASSWORD")
74+
missing.append("STRATEGY_PLUGIN_ALERT_EMAIL_SENDER_PASSWORD")
7575
return tuple(missing)
7676

7777
@property

src/quant_platform_kit/notifications/strategy_plugin_push.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,37 +47,37 @@ def from_object(cls, value: object) -> "StrategyPluginPushSettings":
4747
if isinstance(value, cls):
4848
return value
4949
provider = (
50-
_first_non_empty(_get_value(value, "crisis_alert_push_provider"))
50+
_first_non_empty(_get_value(value, "strategy_plugin_alert_push_provider"))
5151
or _DEFAULT_PUSH_PROVIDER
5252
).lower()
5353
return cls(
5454
recipients=tuple(
55-
parse_push_recipients(_get_value(value, "crisis_alert_push_recipients", ()))
55+
parse_push_recipients(_get_value(value, "strategy_plugin_alert_push_recipients", ()))
5656
),
5757
provider=provider,
58-
app_token=_first_non_empty(_get_value(value, "crisis_alert_push_app_token")),
59-
access_token=_first_non_empty(_get_value(value, "crisis_alert_push_access_token")),
58+
app_token=_first_non_empty(_get_value(value, "strategy_plugin_alert_push_app_token")),
59+
access_token=_first_non_empty(_get_value(value, "strategy_plugin_alert_push_access_token")),
6060
api_base_url=(
61-
_first_non_empty(_get_value(value, "crisis_alert_push_api_base_url"))
61+
_first_non_empty(_get_value(value, "strategy_plugin_alert_push_api_base_url"))
6262
or _default_api_base_url(provider)
6363
),
64-
device=_first_non_empty(_get_value(value, "crisis_alert_push_device")),
65-
priority=_first_non_empty(_get_value(value, "crisis_alert_push_priority")),
66-
tags=_first_non_empty(_get_value(value, "crisis_alert_push_tags")),
64+
device=_first_non_empty(_get_value(value, "strategy_plugin_alert_push_device")),
65+
priority=_first_non_empty(_get_value(value, "strategy_plugin_alert_push_priority")),
66+
tags=_first_non_empty(_get_value(value, "strategy_plugin_alert_push_tags")),
6767
body_max_chars=_coerce_int(
68-
_get_value(value, "crisis_alert_push_body_max_chars"),
68+
_get_value(value, "strategy_plugin_alert_push_body_max_chars"),
6969
_DEFAULT_PUSH_BODY_MAX_CHARS,
7070
),
7171
)
7272

7373
def missing_fields(self) -> tuple[str, ...]:
7474
missing: list[str] = []
7575
if self.provider not in _SUPPORTED_PUSH_PROVIDERS:
76-
missing.append("CRISIS_ALERT_PUSH_PROVIDER=pushover or ntfy")
76+
missing.append("STRATEGY_PLUGIN_ALERT_PUSH_PROVIDER=pushover or ntfy")
7777
if not parse_push_recipients(self.recipients):
78-
missing.append("CRISIS_ALERT_PUSH_RECIPIENTS")
78+
missing.append("STRATEGY_PLUGIN_ALERT_PUSH_RECIPIENTS")
7979
if self.provider == PUSH_PROVIDER_PUSHOVER and not str(self.app_token or "").strip():
80-
missing.append("CRISIS_ALERT_PUSH_APP_TOKEN")
80+
missing.append("STRATEGY_PLUGIN_ALERT_PUSH_APP_TOKEN")
8181
return tuple(missing)
8282

8383
@property

src/quant_platform_kit/notifications/strategy_plugin_sms.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,34 +39,34 @@ def from_object(cls, value: object) -> "StrategyPluginSmsSettings":
3939
if isinstance(value, cls):
4040
return value
4141
return cls(
42-
recipients=tuple(parse_sms_recipients(_get_value(value, "crisis_alert_sms_recipients", ()))),
43-
provider=(_first_non_empty(_get_value(value, "crisis_alert_sms_provider")) or _DEFAULT_SMS_PROVIDER).lower(),
44-
account_id=_first_non_empty(_get_value(value, "crisis_alert_sms_account_id")),
45-
auth_token=_first_non_empty(_get_value(value, "crisis_alert_sms_auth_token")),
46-
sender=_first_non_empty(_get_value(value, "crisis_alert_sms_sender")),
42+
recipients=tuple(parse_sms_recipients(_get_value(value, "strategy_plugin_alert_sms_recipients", ()))),
43+
provider=(_first_non_empty(_get_value(value, "strategy_plugin_alert_sms_provider")) or _DEFAULT_SMS_PROVIDER).lower(),
44+
account_id=_first_non_empty(_get_value(value, "strategy_plugin_alert_sms_account_id")),
45+
auth_token=_first_non_empty(_get_value(value, "strategy_plugin_alert_sms_auth_token")),
46+
sender=_first_non_empty(_get_value(value, "strategy_plugin_alert_sms_sender")),
4747
messaging_service_id=_first_non_empty(
48-
_get_value(value, "crisis_alert_sms_messaging_service_id")
48+
_get_value(value, "strategy_plugin_alert_sms_messaging_service_id")
4949
),
50-
api_base_url=_first_non_empty(_get_value(value, "crisis_alert_sms_api_base_url"))
50+
api_base_url=_first_non_empty(_get_value(value, "strategy_plugin_alert_sms_api_base_url"))
5151
or _DEFAULT_SMS_API_BASE_URL,
5252
body_max_chars=_coerce_int(
53-
_get_value(value, "crisis_alert_sms_body_max_chars"),
53+
_get_value(value, "strategy_plugin_alert_sms_body_max_chars"),
5454
_DEFAULT_SMS_BODY_MAX_CHARS,
5555
),
5656
)
5757

5858
def missing_fields(self) -> tuple[str, ...]:
5959
missing: list[str] = []
6060
if self.provider != _DEFAULT_SMS_PROVIDER:
61-
missing.append("CRISIS_ALERT_SMS_PROVIDER=twilio")
61+
missing.append("STRATEGY_PLUGIN_ALERT_SMS_PROVIDER=twilio")
6262
if not parse_sms_recipients(self.recipients):
63-
missing.append("CRISIS_ALERT_SMS_RECIPIENTS")
63+
missing.append("STRATEGY_PLUGIN_ALERT_SMS_RECIPIENTS")
6464
if not str(self.account_id or "").strip():
65-
missing.append("CRISIS_ALERT_SMS_ACCOUNT_ID")
65+
missing.append("STRATEGY_PLUGIN_ALERT_SMS_ACCOUNT_ID")
6666
if not str(self.auth_token or "").strip():
67-
missing.append("CRISIS_ALERT_SMS_AUTH_TOKEN")
67+
missing.append("STRATEGY_PLUGIN_ALERT_SMS_AUTH_TOKEN")
6868
if not str(self.sender or "").strip() and not str(self.messaging_service_id or "").strip():
69-
missing.append("CRISIS_ALERT_SMS_SENDER or CRISIS_ALERT_SMS_MESSAGING_SERVICE_ID")
69+
missing.append("STRATEGY_PLUGIN_ALERT_SMS_SENDER or STRATEGY_PLUGIN_ALERT_SMS_MESSAGING_SERVICE_ID")
7070
return tuple(missing)
7171

7272
@property

src/quant_platform_kit/notifications/strategy_plugin_telegram.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,30 +40,30 @@ def from_object(cls, value: object) -> "StrategyPluginTelegramSettings":
4040
return value
4141
return cls(
4242
chat_ids=tuple(
43-
parse_telegram_chat_ids(_get_value(value, "crisis_alert_telegram_chat_ids", ()))
43+
parse_telegram_chat_ids(_get_value(value, "strategy_plugin_alert_telegram_chat_ids", ()))
4444
),
45-
bot_token=_first_non_empty(_get_value(value, "crisis_alert_telegram_bot_token")),
45+
bot_token=_first_non_empty(_get_value(value, "strategy_plugin_alert_telegram_bot_token")),
4646
api_base_url=(
47-
_first_non_empty(_get_value(value, "crisis_alert_telegram_api_base_url"))
47+
_first_non_empty(_get_value(value, "strategy_plugin_alert_telegram_api_base_url"))
4848
or DEFAULT_TELEGRAM_BOT_API_BASE_URL
4949
),
50-
parse_mode=_first_non_empty(_get_value(value, "crisis_alert_telegram_parse_mode")),
50+
parse_mode=_first_non_empty(_get_value(value, "strategy_plugin_alert_telegram_parse_mode")),
5151
disable_web_page_preview=_coerce_bool(
52-
_get_value(value, "crisis_alert_telegram_disable_web_page_preview"),
52+
_get_value(value, "strategy_plugin_alert_telegram_disable_web_page_preview"),
5353
default=True,
5454
),
5555
body_max_chars=_coerce_int(
56-
_get_value(value, "crisis_alert_telegram_body_max_chars"),
56+
_get_value(value, "strategy_plugin_alert_telegram_body_max_chars"),
5757
_DEFAULT_TELEGRAM_BODY_MAX_CHARS,
5858
),
5959
)
6060

6161
def missing_fields(self) -> tuple[str, ...]:
6262
missing: list[str] = []
6363
if not parse_telegram_chat_ids(self.chat_ids):
64-
missing.append("CRISIS_ALERT_TELEGRAM_CHAT_IDS")
64+
missing.append("STRATEGY_PLUGIN_ALERT_TELEGRAM_CHAT_IDS")
6565
if not str(self.bot_token or "").strip():
66-
missing.append("CRISIS_ALERT_TELEGRAM_BOT_TOKEN")
66+
missing.append("STRATEGY_PLUGIN_ALERT_TELEGRAM_BOT_TOKEN")
6767
return tuple(missing)
6868

6969
@property

tests/test_strategy_plugin_alert_dispatcher.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@ def _alert_signal():
2525

2626

2727
class _NotificationSettings:
28-
crisis_alert_email_recipients = "risk@example.com"
29-
crisis_alert_email_sender_email = "bot@example.com"
30-
crisis_alert_email_sender_password = "app-password"
31-
crisis_alert_sms_recipients = "+15165480265"
32-
crisis_alert_sms_account_id = "AC123"
33-
crisis_alert_sms_auth_token = "secret"
34-
crisis_alert_sms_sender = "+15551234567"
35-
crisis_alert_push_provider = "ntfy"
36-
crisis_alert_push_recipients = "risk-topic"
37-
crisis_alert_push_priority = "5"
38-
crisis_alert_telegram_chat_ids = "123456"
39-
crisis_alert_telegram_bot_token = "bot-token"
28+
strategy_plugin_alert_email_recipients = "risk@example.com"
29+
strategy_plugin_alert_email_sender_email = "bot@example.com"
30+
strategy_plugin_alert_email_sender_password = "app-password"
31+
strategy_plugin_alert_sms_recipients = "+15165480265"
32+
strategy_plugin_alert_sms_account_id = "AC123"
33+
strategy_plugin_alert_sms_auth_token = "secret"
34+
strategy_plugin_alert_sms_sender = "+15551234567"
35+
strategy_plugin_alert_push_provider = "ntfy"
36+
strategy_plugin_alert_push_recipients = "risk-topic"
37+
strategy_plugin_alert_push_priority = "5"
38+
strategy_plugin_alert_telegram_chat_ids = "123456"
39+
strategy_plugin_alert_telegram_bot_token = "bot-token"
4040

4141

4242
class StrategyPluginAlertDispatcherTests(unittest.TestCase):
@@ -202,7 +202,7 @@ def test_publish_strategy_plugin_alerts_can_target_telegram_channel(self):
202202

203203
def test_publish_strategy_plugin_alerts_reads_channels_from_settings(self):
204204
settings = _NotificationSettings()
205-
settings.crisis_alert_channels = "email,telegram"
205+
settings.strategy_plugin_alert_channels = "email,telegram"
206206
emails = []
207207
telegram_messages = []
208208

tests/test_strategy_plugin_email_notifications.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ def test_publish_strategy_plugin_email_alerts_skips_missing_config():
8686
assert result.sent_count == 0
8787
assert result.skipped_count == 1
8888
assert result.deliveries[0].reason == "missing_email_config"
89-
assert "CRISIS_ALERT_EMAIL_RECIPIENTS" in result.deliveries[0].error
90-
assert "CRISIS_ALERT_EMAIL_SENDER_EMAIL" in result.deliveries[0].error
91-
assert "CRISIS_ALERT_EMAIL_SENDER_PASSWORD" in result.deliveries[0].error
89+
assert "STRATEGY_PLUGIN_ALERT_EMAIL_RECIPIENTS" in result.deliveries[0].error
90+
assert "STRATEGY_PLUGIN_ALERT_EMAIL_SENDER_EMAIL" in result.deliveries[0].error
91+
assert "STRATEGY_PLUGIN_ALERT_EMAIL_SENDER_PASSWORD" in result.deliveries[0].error
9292
assert observed == []
9393

9494

@@ -187,9 +187,9 @@ def test_publish_strategy_plugin_email_alerts_uses_transport_overrides():
187187
def test_email_settings_reads_sender_and_default_transport_names_only():
188188
settings = StrategyPluginEmailSettings.from_object(
189189
SimpleNamespace(
190-
crisis_alert_email_recipients="alerts@example.com; voice@example.com",
191-
crisis_alert_email_sender_email="sender@example.com",
192-
crisis_alert_email_sender_password="app-password",
190+
strategy_plugin_alert_email_recipients="alerts@example.com; voice@example.com",
191+
strategy_plugin_alert_email_sender_email="sender@example.com",
192+
strategy_plugin_alert_email_sender_password="app-password",
193193
)
194194
)
195195

@@ -205,12 +205,12 @@ def test_email_settings_reads_sender_and_default_transport_names_only():
205205
def test_email_settings_reads_optional_smtp_transport_overrides():
206206
settings = StrategyPluginEmailSettings.from_object(
207207
SimpleNamespace(
208-
crisis_alert_email_recipients="voice@example.com",
209-
crisis_alert_email_sender_email="sender@example.com",
210-
crisis_alert_email_sender_password="secret",
211-
crisis_alert_email_smtp_host="smtp.example.com",
212-
crisis_alert_email_smtp_port="587",
213-
crisis_alert_email_smtp_security="starttls",
208+
strategy_plugin_alert_email_recipients="voice@example.com",
209+
strategy_plugin_alert_email_sender_email="sender@example.com",
210+
strategy_plugin_alert_email_sender_password="secret",
211+
strategy_plugin_alert_email_smtp_host="smtp.example.com",
212+
strategy_plugin_alert_email_smtp_port="587",
213+
strategy_plugin_alert_email_smtp_security="starttls",
214214
)
215215
)
216216

tests/test_strategy_plugin_push_notifications.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ def test_publish_strategy_plugin_push_alerts_skips_missing_config():
135135
assert result.sent_count == 0
136136
assert result.skipped_count == 1
137137
assert result.deliveries[0].reason == "missing_push_config"
138-
assert "CRISIS_ALERT_PUSH_RECIPIENTS" in result.deliveries[0].error
139-
assert "CRISIS_ALERT_PUSH_APP_TOKEN" in result.deliveries[0].error
138+
assert "STRATEGY_PLUGIN_ALERT_PUSH_RECIPIENTS" in result.deliveries[0].error
139+
assert "STRATEGY_PLUGIN_ALERT_PUSH_APP_TOKEN" in result.deliveries[0].error
140140
assert observed == []
141141

142142

@@ -200,22 +200,22 @@ def test_publish_strategy_plugin_push_alerts_skips_duplicate_marker(tmp_path):
200200
def test_push_settings_reads_pushover_and_ntfy_config_from_object():
201201
pushover = StrategyPluginPushSettings.from_object(
202202
SimpleNamespace(
203-
crisis_alert_push_recipients="user-key",
204-
crisis_alert_push_provider="pushover",
205-
crisis_alert_push_app_token="app-token",
206-
crisis_alert_push_device="iphone",
207-
crisis_alert_push_priority="1",
203+
strategy_plugin_alert_push_recipients="user-key",
204+
strategy_plugin_alert_push_provider="pushover",
205+
strategy_plugin_alert_push_app_token="app-token",
206+
strategy_plugin_alert_push_device="iphone",
207+
strategy_plugin_alert_push_priority="1",
208208
)
209209
)
210210
ntfy = StrategyPluginPushSettings.from_object(
211211
SimpleNamespace(
212-
crisis_alert_push_recipients="risk-topic",
213-
crisis_alert_push_provider="ntfy",
214-
crisis_alert_push_access_token="access-token",
215-
crisis_alert_push_api_base_url="https://ntfy.example.test",
216-
crisis_alert_push_priority="5",
217-
crisis_alert_push_tags="warning",
218-
crisis_alert_push_body_max_chars="300",
212+
strategy_plugin_alert_push_recipients="risk-topic",
213+
strategy_plugin_alert_push_provider="ntfy",
214+
strategy_plugin_alert_push_access_token="access-token",
215+
strategy_plugin_alert_push_api_base_url="https://ntfy.example.test",
216+
strategy_plugin_alert_push_priority="5",
217+
strategy_plugin_alert_push_tags="warning",
218+
strategy_plugin_alert_push_body_max_chars="300",
219219
)
220220
)
221221

tests/test_strategy_plugin_sms_notifications.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ def test_publish_strategy_plugin_sms_alerts_skips_missing_config():
8888
assert result.sent_count == 0
8989
assert result.skipped_count == 1
9090
assert result.deliveries[0].reason == "missing_sms_config"
91-
assert "CRISIS_ALERT_SMS_RECIPIENTS" in result.deliveries[0].error
92-
assert "CRISIS_ALERT_SMS_ACCOUNT_ID" in result.deliveries[0].error
93-
assert "CRISIS_ALERT_SMS_AUTH_TOKEN" in result.deliveries[0].error
94-
assert "CRISIS_ALERT_SMS_SENDER or CRISIS_ALERT_SMS_MESSAGING_SERVICE_ID" in result.deliveries[0].error
91+
assert "STRATEGY_PLUGIN_ALERT_SMS_RECIPIENTS" in result.deliveries[0].error
92+
assert "STRATEGY_PLUGIN_ALERT_SMS_ACCOUNT_ID" in result.deliveries[0].error
93+
assert "STRATEGY_PLUGIN_ALERT_SMS_AUTH_TOKEN" in result.deliveries[0].error
94+
assert "STRATEGY_PLUGIN_ALERT_SMS_SENDER or STRATEGY_PLUGIN_ALERT_SMS_MESSAGING_SERVICE_ID" in result.deliveries[0].error
9595
assert observed == []
9696

9797

@@ -165,13 +165,13 @@ def test_publish_strategy_plugin_sms_alerts_skips_duplicate_marker(tmp_path):
165165
def test_sms_settings_reads_twilio_config_from_object():
166166
settings = StrategyPluginSmsSettings.from_object(
167167
SimpleNamespace(
168-
crisis_alert_sms_recipients="(516) 548-0265",
169-
crisis_alert_sms_provider="twilio",
170-
crisis_alert_sms_account_id="AC123",
171-
crisis_alert_sms_auth_token="secret",
172-
crisis_alert_sms_messaging_service_id="MG123",
173-
crisis_alert_sms_api_base_url="https://twilio.example.test",
174-
crisis_alert_sms_body_max_chars="160",
168+
strategy_plugin_alert_sms_recipients="(516) 548-0265",
169+
strategy_plugin_alert_sms_provider="twilio",
170+
strategy_plugin_alert_sms_account_id="AC123",
171+
strategy_plugin_alert_sms_auth_token="secret",
172+
strategy_plugin_alert_sms_messaging_service_id="MG123",
173+
strategy_plugin_alert_sms_api_base_url="https://twilio.example.test",
174+
strategy_plugin_alert_sms_body_max_chars="160",
175175
)
176176
)
177177

0 commit comments

Comments
 (0)