diff --git a/ja_law_parser/model.py b/ja_law_parser/model.py index a40adca..92075e8 100755 --- a/ja_law_parser/model.py +++ b/ja_law_parser/model.py @@ -1005,9 +1005,9 @@ class WithArticleRange(BaseXmlModel, arbitrary_types_allowed=True): @computed_element(tag="ArticleRange") # type: ignore[arg-type] def article_range(self) -> Optional[ArticleRange]: - if self.article_range is None: + if self.article_range_raw is None: return None - return ArticleRange(raw_element=self.article_range) + return ArticleRange(raw_element=self.article_range_raw) article_range_raw: Optional[etree._Element] = element(tag="ArticleRange", default=None, exclude=True) diff --git a/tests/test_toc.py b/tests/test_toc.py new file mode 100644 index 0000000..9a3e1bd --- /dev/null +++ b/tests/test_toc.py @@ -0,0 +1,32 @@ +from ja_law_parser.model import TOC + + +class TestTOC: + def test_toc(self): + xml = """\ + + 目次 + + Chapter 1 + (第一条・第二条) + + + Chapter 2 + (第三条―第五条) + + + 附則 + + + """ + toc: TOC = TOC.from_xml(xml) + assert toc is not None + assert toc.toc_label == "目次" + assert len(toc.toc_chapters) == 2 + assert toc.toc_chapters[0].num == "1" + assert toc.toc_chapters[0].chapter_title.text == "Chapter 1" + assert toc.toc_chapters[0].article_range.text == "(第一条・第二条)" + assert toc.toc_chapters[1].num == "2" + assert toc.toc_chapters[1].chapter_title.text == "Chapter 2" + assert toc.toc_chapters[1].article_range.text == "(第三条―第五条)" + assert toc.toc_suppl_provision.suppl_provision_label.text == "附則"