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_relevant_parent(): root = DossierNode() step_node = LegislativeStepNode(parent=root) root.add_child(step_node) act_node = DepotLoiNode(parent=step_node) step_node.add_child(act_node) assert root == act_node.get_relevant_parent(LegislativeStepNode) assert step_node == act_node.get_relevant_parent(EtudeImpactNode) assert step_node == act_node.get_relevant_parent(ProcedureAccelereeNode) assert step_node == step_node.get_relevant_parent(ProcedureAccelereeNode)
def test_depot_loi_matching(): depot_element_1 = 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_element_2 = BeautifulSoup( '<p><a href="/14/projets/pl3318.asp">Projet de loi</a> , adopté, par l\'Assemblée nationale après engagement de la procédure accélérée, relatif au renseignement, n° 424, déposé le 5 mai 2015.</p>', 'html5lib') assert DepotLoiNode.match(depot_element_1) assert DepotLoiNode.match(depot_element_2)
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)