def test_dossier_data_extractor(): pjl_element = BeautifulSoup( '<p><a href="/14/projets/pl3318.asp">Projet de loi</a> pour une République numérique, n° 3318, déposé le 9 décembre 2015 (mis en ligne le 9 décembre 2015 à 18 heures 50)</p>', 'html5lib') depot = DepotLoiNode() depot.add_element(pjl_element) an_first_lecture_element = BeautifulSoup( '<p><strong>Assemblée nationale - 1ère lecture</strong></p>', 'html5lib') step = LegislativeStepNode() step.add_element(an_first_lecture_element) step.add_child(depot) dossier = DossierNode() title_element = BeautifulSoup( '<p><strong>Questions sociales et santé : modernisation de notre système de santé</strong></p>', 'html5lib') dossier.add_element(title_element) dossier.add_child(step) steps = dossier.extract_data() assert steps == [{ 'type': LegislativeStepType.AN_PREMIERE_LECTURE, 'acts': [{ 'type': LegislativeActType.DEPOT_INITIATIVE, 'url': 'http://www.assemblee-nationale.fr/14/projets/pl3318.asp', 'date': datetime(2015, 12, 9) }] }]
def test_depot_loi_extractor(): depot_element = BeautifulSoup( '<p><a href="/14/projets/pl3318.asp">Projet de loi</a> pour une République numérique, n° 3318, déposé le 9 décembre 2015 (mis en ligne le 9 décembre 2015 à 18 heures 50)</p>', 'html5lib') act = DepotLoiNode() act.add_element(depot_element) act_data = act.extract_data()[0] assert act_data['type'] == LegislativeActType.DEPOT_INITIATIVE assert act_data[ 'url'] == 'http://www.assemblee-nationale.fr/14/projets/pl3318.asp' assert act_data['date'] == datetime(2015, 12, 9)