fix: test suite sent real push notifications via the developer's .env
This commit is contained in:
@@ -624,3 +624,40 @@ class TestNotifySend:
|
||||
monkeypatch.setenv("NTFY_TOPIC", "unit-test-topic")
|
||||
monkeypatch.setenv("NTFY_NOTIFY", "off")
|
||||
assert notify_mod.is_configured() is False
|
||||
|
||||
|
||||
class TestNoRealNotificationsDuringTests:
|
||||
"""Regression guard for the 2026-08-18 incident: the suite pushed to the
|
||||
developer's real ntfy topic because `sync` loads `.env` via `load_dotenv`.
|
||||
|
||||
Asserts the conftest neutralisation holds even though a real `.env` with a
|
||||
live NTFY_TOPIC sits beside the tests.
|
||||
"""
|
||||
|
||||
def test_notifications_are_disabled(self):
|
||||
from src import notify as notify_mod
|
||||
|
||||
assert notify_mod.is_configured() is False
|
||||
|
||||
def test_dotenv_cannot_reintroduce_a_topic(self):
|
||||
"""`load_dotenv(override=False)` skips keys already present — including
|
||||
empty ones. Deleting the var instead of emptying it would reopen this."""
|
||||
import os
|
||||
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from src import notify as notify_mod
|
||||
|
||||
load_dotenv(override=False)
|
||||
assert os.getenv("NTFY_TOPIC", "").strip() == ""
|
||||
assert notify_mod.is_configured() is False
|
||||
|
||||
def test_send_cannot_reach_the_public_server(self, monkeypatch):
|
||||
"""Even a test that sets its own topic is pinned to a dead local port."""
|
||||
import os
|
||||
|
||||
from src import notify as notify_mod
|
||||
|
||||
monkeypatch.setenv("NTFY_TOPIC", "some-topic")
|
||||
assert "127.0.0.1" in os.getenv("NTFY_SERVER", "")
|
||||
assert notify_mod.send("t", "m") is False
|
||||
|
||||
Reference in New Issue
Block a user