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)