From 0ba7aee15e5446084fd77faae68d9c3b7eed369e Mon Sep 17 00:00:00 2001 From: PRIMET Romain Date: Fri, 16 Feb 2024 11:34:49 +0100 Subject: [PATCH] add tests --- src/catleg/skeleton.py | 5 +++++ tests/test_skeleton.py | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/catleg/skeleton.py b/src/catleg/skeleton.py index 1902375..5ef3ff6 100644 --- a/src/catleg/skeleton.py +++ b/src/catleg/skeleton.py @@ -55,6 +55,11 @@ async def article_skeleton(articleid: str, breadcrumbs: bool = True) -> str: back = get_backend("legifrance") # This uses the Legifrance API directly, not the backend abstraction raw_article_json = await back.query_article_legi(articleid) + return _article_skeleton(raw_article_json=raw_article_json, breadcrumbs=breadcrumbs) + + +# separate network calls and processing to ease unit testing +def _article_skeleton(raw_article_json, breadcrumbs: bool = True): article_json = raw_article_json["article"] article = _article_from_legifrance_reply(raw_article_json) if article is None: diff --git a/tests/test_skeleton.py b/tests/test_skeleton.py index cd6aafd..bacb83e 100644 --- a/tests/test_skeleton.py +++ b/tests/test_skeleton.py @@ -1,8 +1,10 @@ from io import StringIO +import pytest + from catleg.parse_catala_markdown import parse_catala_file from catleg.query import _article_from_legifrance_reply -from catleg.skeleton import _formatted_atricle +from catleg.skeleton import _article_skeleton, _formatted_atricle from .test_legifrance_queries import _json_from_test_file @@ -85,3 +87,12 @@ def test_no_article_renumbering_in_catala_file_parsing(): assert "1. Le bénéfice ou revenu imposable est constitué" in article.text assert "2. Le revenu global net annuel" in article.text assert "3. Le bénéfice ou revenu net de chacune des catégories" in article.text + + +@pytest.mark.parametrize("breadcrumbs", [False, True]) +def test_article_skeleton(breadcrumbs: bool): + article_json = _json_from_test_file("LEGIARTI000044983201.json") + askel = _article_skeleton(article_json) + assert "excédent du produit brut" in askel + if breadcrumbs: + assert "## Première Partie : Impôts d'État" in askel