From af9aa0fd1a18073710236b1690b120f55c87a35f Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Sun, 12 Apr 2026 23:22:49 +0100 Subject: [PATCH] Regression test --- pelican/tests/test_settings.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/pelican/tests/test_settings.py b/pelican/tests/test_settings.py index 84f7a5c9..3ac05d11 100644 --- a/pelican/tests/test_settings.py +++ b/pelican/tests/test_settings.py @@ -1,5 +1,6 @@ import copy import locale +import logging import os from os.path import abspath, dirname, join @@ -11,7 +12,7 @@ from pelican.settings import ( handle_deprecated_settings, read_settings, ) -from pelican.tests.support import unittest +from pelican.tests.support import LogCountHandler, unittest class TestSettingsConfiguration(unittest.TestCase): @@ -108,6 +109,36 @@ class TestSettingsConfiguration(unittest.TestCase): configure_settings(settings) self.assertEqual(settings["FEED_DOMAIN"], "http://feeds.example.com") + def test_feeds_warning(self): + handler = LogCountHandler() + logging.getLogger().addHandler(handler) + try: + base = { + "LOCALE": "", + "PATH": os.curdir, + "THEME": DEFAULT_THEME, + "FEED_RSS": "feeds/all.rss.xml", + } + warning_msg = "Feeds generated without SITEURL" + + # No warning when SITEURL is set + configure_settings({**base, "SITEURL": "http://example.com"}) + self.assertEqual(handler.count_logs(warning_msg, logging.WARNING), 0) + + # No warning when FEED_DOMAIN is set + handler.flush() + configure_settings( + {**base, "FEED_DOMAIN": "http://feeds.example.com"} + ) + self.assertEqual(handler.count_logs(warning_msg, logging.WARNING), 0) + + # Warning when neither SITEURL nor FEED_DOMAIN is set + handler.flush() + configure_settings(base.copy()) + self.assertEqual(handler.count_logs(warning_msg, logging.WARNING), 1) + finally: + logging.getLogger().removeHandler(handler) + def test_theme_settings_exceptions(self): settings = self.settings