From: Danilo M. Date: Sun, 3 May 2026 08:07:43 +0000 (+0200) Subject: fix: narrow exception clause to ValueError/OSError, add corrupt frontmatter test X-Git-Tag: v1.0~24 X-Git-Url: https://git.danix.xyz/?a=commitdiff_plain;h=78dea7417fed34ba96efbd8e6d4f1f87c3e998f0;p=publisher.git fix: narrow exception clause to ValueError/OSError, add corrupt frontmatter test --- 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)