From 78dea7417fed34ba96efbd8e6d4f1f87c3e998f0 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sun, 3 May 2026 10:07:43 +0200 Subject: fix: narrow exception clause to ValueError/OSError, add corrupt frontmatter test --- core/article_scanner.py | 2 +- tests/test_article_scanner.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/article_scanner.py b/core/article_scanner.py index ea6579a..bb69a26 100644 --- a/core/article_scanner.py +++ b/core/article_scanner.py @@ -20,7 +20,7 @@ def scan_articles(blog_root: Path) -> list[Article]: translation_path = by_slug.get((other_lang, slug)) try: fm, _ = parse_frontmatter(path) - except (ValueError, Exception): + except (ValueError, OSError): fm = {} articles.append(Article( slug=slug, diff --git a/tests/test_article_scanner.py b/tests/test_article_scanner.py index 66daf83..db8b683 100644 --- a/tests/test_article_scanner.py +++ b/tests/test_article_scanner.py @@ -33,6 +33,14 @@ def test_scan_detects_missing_translation(tmp_path): assert art.has_translation is False assert art.translation_path is None +def test_scan_tolerates_corrupt_frontmatter(tmp_path): + p = tmp_path / "content" / "it" / "articles" / "broken" + p.mkdir(parents=True) + (p / "index.md").write_text("no frontmatter delimiters here\n") + articles = scan_articles(tmp_path) + art = next(a for a in articles if a.slug == "broken") + assert art.frontmatter == {} + def test_scan_parses_frontmatter(tmp_path): _make_article(tmp_path, "it", "con-fm", 'tags = ["linux"]\n') articles = scan_articles(tmp_path) -- cgit v1.2.3