commit 6cfd378669b68e2439bb02e8421310d902dca804 from: Romain VINCENT date: Sat Jan 17 15:44:01 2026 UTC Improve test coverage for the ChapterParser. commit - 58aaa8cb0ad39a24e0f6d428a33fdd2b4c593550 commit + 6cfd378669b68e2439bb02e8421310d902dca804 blob - 0313e17a37d91721c7efb6ce2ee58f406426e38e blob + 2ef7ff37f5b755deefd92ec5bc385479d9db7623 --- eur-lex-scraper/src/parsers/chapter.rs +++ eur-lex-scraper/src/parsers/chapter.rs @@ -81,7 +81,7 @@ impl ChapterParser { mod tests { use super::*; - use crate::models::articles::Article; + use crate::models::{articles::Article, section::Section}; use scraper::{Html, Selector}; use std::fs; // Well formed chapter @@ -91,7 +91,7 @@ mod tests { #[test] fn parsing_chapter_1() { - let html = Html::parse_fragment(&&get_test_chapter_1()); + let html = Html::parse_fragment(&get_test_chapter_1()); let selector = Selector::parse(r#"[id*="cpt_"]:not([id*="."])"#).unwrap(); let element_ref = html.select(&selector).next().unwrap(); let chapter_left = ChapterParser::parse(element_ref).unwrap(); @@ -130,4 +130,26 @@ mod tests { assert_eq!(art4.get_title(), "AI literacy"); assert_eq!(art4.get_id(), "d1e2795-1-1"); } + #[test] + fn parsing_chapter_3() { + let html = Html::parse_fragment(&get_test_chapter_1()); + // we select chapter III + let selector = Selector::parse(r#"[id="cpt_III"]"#).unwrap(); + let element_ref = html.select(&selector).next().unwrap(); + let chapter_left = ChapterParser::parse(element_ref).unwrap(); + assert_eq!(chapter_left.get_title(), "HIGH-RISK AI SYSTEMS"); + assert_eq!(chapter_left.get_id(), "d1e3003-1-1"); + assert_eq!(chapter_left.len(), 5); + // + // see sec 1 + let sec1 = chapter_left.get(0).unwrap().clone(); + assert!(sec1.is_section()); + let sec1: Section = sec1.try_into().unwrap(); + //assert_eq!(sec1.get_number(), 1); + assert_eq!( + sec1.get_title(), + "Classification of AI systems as high-risk" + ); + assert_eq!(sec1.get_id(), "d1e3012-1-1"); + } }