Exemple #1
0
def test_generate_pdf_amendement_with_responses(app, lecture_senat,
                                                article1_senat):
    from zam_repondeur.models import Amendement, AmendementList
    from zam_repondeur.services.import_export.pdf import generate_html_for_pdf

    amendement = Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        alinea="",
        num=42,
        rectif=1,
        auteur="M. DUPONT",
        groupe="RDSE",
        matricule="000000",
        corps="<p>L'article 1 est supprimé.</p>",
        expose="<p>Cet article va à l'encontre du principe d'égalité.</p>",
        resume="Suppression de l'article",
        position=1,
        avis="Favorable",
    )

    amdt_list = AmendementList([amendement])

    parser = HTMLParser(
        generate_html_for_pdf(
            DummyRequest(),
            "print/multiple.html",
            {
                "amendements": amdt_list,
                "article_amendements": amdt_list
            },
        ))

    assert _html_page_titles(parser) == ["Réponse", "Amendement nº 42 rect."]
Exemple #2
0
def test_generate_pdf_with_amendement_content_gouvernemental(
        app, lecture_senat, article1_senat, amendements_senat):
    from zam_repondeur.models import DBSession
    from zam_repondeur.services.import_export.pdf import generate_html_for_pdf

    amendement_6666 = amendements_senat[0]
    amendement_6666.auteur = "LE GOUVERNEMENT"
    amendement_6666.user_content.reponse = "La présentation"
    DBSession.add(amendement_6666)

    parser = HTMLParser(
        generate_html_for_pdf(DummyRequest(), "print/all.html",
                              {"lecture": lecture_senat}))

    assert (
        parser.css_first(".first-page .lecture").text() ==
        "Sénat, session 2017-2018, Séance publique, Numéro lecture, texte nº\xa063"
    )
    assert _html_page_titles(parser) == [
        "Article 1", "Réponse", "Amendement nº 6666"
    ]
    response_node = parser.css_first(".reponse")
    assert _cartouche_to_list(response_node) == [
        "Article",
        "Art. 1",
        "Amendement",
        "6666",
        "Auteur",
        "Gouvernement",
    ]
    assert response_node.css_first("div h5").text() == "Réponse"
    assert "La présentation" in response_node.css_first("div p").text()
Exemple #3
0
def test_generate_pdf_amendement_with_similaire(app, lecture_senat,
                                                article1_senat,
                                                amendements_senat):
    from zam_repondeur.models import AmendementList, DBSession
    from zam_repondeur.services.import_export.pdf import generate_html_for_pdf

    amendement_6666, amendement_9999 = amdt_list = AmendementList(
        amendements_senat)

    amendement_6666.auteur = "M. JEAN"
    amendement_6666.groupe = "Les Indépendants"
    amendement_6666.user_content.avis = "Favorable"
    amendement_6666.user_content.objet = "L’objet"
    amendement_6666.user_content.reponse = "La réponse"

    amendement_9999.auteur = "M. CLAUDE"
    amendement_9999.groupe = "Les Mécontents"
    amendement_9999.user_content.avis = "Favorable"
    amendement_9999.user_content.objet = "L’objet"
    amendement_9999.user_content.reponse = "La réponse"

    DBSession.add_all(amendements_senat)
    DBSession.flush()

    assert amdt_list.similaires(amendement_6666) == [amendement_9999]

    parser = HTMLParser(
        generate_html_for_pdf(
            DummyRequest(),
            "print/multiple.html",
            {
                "amendements": AmendementList([amendement_6666]),
                "article_amendements": amdt_list,
            },
        ))

    assert _html_page_titles(parser) == ["Réponse", "Amendement nº 6666"]
    response_node = parser.css_first(".reponse")
    assert _cartouche_to_list(response_node) == [
        "Article",
        "Art. 1",
        "Amendements",
        "6666 et 9999",
        "Auteurs",
        "M. CLAUDE et M. JEAN",
        "Groupes",
        "Les Indépendants et Les Mécontents",
        "Avis",
        "Favorable",
    ]
    assert response_node.css_first("div h5").text() == "Objet"
    assert "L’objet" in response_node.css_first("div p").text()
    assert response_node.css("div h5")[-1].text() == "Réponse"
    assert "La réponse" in response_node.css("div p")[-1].text()
Exemple #4
0
def test_generate_pdf_with_amendement_content_factor_only_groups(
        app, lecture_senat, article1_senat, amendements_senat):
    from zam_repondeur.models import DBSession
    from zam_repondeur.services.import_export.pdf import generate_html_for_pdf

    amendement_6666 = amendements_senat[0]
    amendement_6666.auteur = "M. JEAN"
    amendement_6666.groupe = "Les Indépendants"
    amendement_6666.user_content.avis = "Favorable"
    amendement_6666.user_content.objet = "L’objet"
    amendement_6666.user_content.reponse = "La réponse"
    DBSession.add(amendement_6666)

    amendement_9999 = amendements_senat[1]
    amendement_9999.auteur = "M. CLAUDE"
    amendement_9999.groupe = "Les Indépendants"
    amendement_9999.user_content.avis = "Favorable"
    amendement_9999.user_content.objet = "L’objet"
    amendement_9999.user_content.reponse = "La réponse"
    DBSession.add(amendement_9999)

    parser = HTMLParser(
        generate_html_for_pdf(DummyRequest(), "print/all.html",
                              {"lecture": lecture_senat}))

    assert (
        parser.css_first(".first-page .lecture").text() ==
        "Sénat, session 2017-2018, Séance publique, Numéro lecture, texte nº\xa063"
    )
    assert _html_page_titles(parser) == [
        "Article 1",
        "Réponse",
        "Amendement nº 6666",
        "Amendement nº 9999",
    ]
    response_node = parser.css_first(".reponse")
    assert _cartouche_to_list(response_node) == [
        "Article",
        "Art. 1",
        "Amendements",
        "6666 et 9999",
        "Auteurs",
        "M. CLAUDE et M. JEAN",
        "Groupes",
        "Les Indépendants",
        "Avis",
        "Favorable",
    ]
    assert response_node.css_first("div h5").text() == "Objet"
    assert "L’objet" in response_node.css_first("div p").text()
    assert response_node.css("div h5")[-1].text() == "Réponse"
    assert "La réponse" in response_node.css("div p")[-1].text()
Exemple #5
0
def test_generate_pdf_with_amendement_responses(app, lecture_senat,
                                                article1_senat,
                                                article1av_senat,
                                                article7bis_senat):
    from zam_repondeur.models import Amendement
    from zam_repondeur.services.import_export.pdf import generate_html_for_pdf

    amendement = Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        alinea="",
        num=42,
        rectif=1,
        auteur="M. DUPONT",
        groupe="RDSE",
        matricule="000000",
        corps="<p>L'article 1 est supprimé.</p>",
        expose="<p>Cet article va à l'encontre du principe d'égalité.</p>",
        resume="Suppression de l'article",
        position=1,
        avis="Favorable",
    )
    Amendement.create(
        lecture=lecture_senat,
        article=article1av_senat,
        alinea="",
        num=57,
        auteur="M. DURAND",
        groupe="Les Républicains",
        matricule="000001",
        corps="baz",
        expose="qux",
    )
    Amendement.create(
        lecture=lecture_senat,
        article=article7bis_senat,
        alinea="",
        num=21,
        auteur="M. MARTIN",
        groupe=None,
        matricule="000002",
        corps="quux",
        expose="quuz",
    )
    Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        alinea="",
        num=43,
        auteur="M. JEAN",
        groupe="Les Indépendants",
        matricule="000003",
        corps="corge",
        expose="grault",
    )
    Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        alinea="",
        num=596,
        rectif=1,
        parent=amendement,
        auteur="M. JEAN",
        groupe="Les Indépendants",
        matricule="000003",
        corps="corge",
        expose="grault",
    )

    parser = HTMLParser(
        generate_html_for_pdf(DummyRequest(), "print/all.html",
                              {"lecture": lecture_senat}))

    assert (
        parser.css_first(".first-page .lecture").text() ==
        "Sénat, session 2017-2018, Séance publique, Numéro lecture, texte nº\xa063"
    )
    assert _html_page_titles(parser) == [
        "Article 1",
        "Réponse",
        "Amendement nº 42 rect.",
        "Article 7 bis",
    ]
Exemple #6
0
def test_generate_pdf_amendement_with_similaire_different_articles(
        app, lecture_senat, article1_senat, article7bis_senat,
        amendements_senat):
    from zam_repondeur.models import Amendement, AmendementList, DBSession
    from zam_repondeur.services.import_export.pdf import generate_html_for_pdf

    amendement_6666, amendement_9999 = amendements_senat

    amendement_6666.auteur = "M. JEAN"
    amendement_6666.groupe = "Les Indépendants"
    amendement_6666.user_content.avis = "Favorable"
    amendement_6666.user_content.objet = "L’objet"
    amendement_6666.user_content.reponse = "La réponse"

    amendement_9999.auteur = "M. CLAUDE"
    amendement_9999.groupe = "Les Mécontents"
    amendement_9999.user_content.avis = "Favorable"
    amendement_9999.user_content.objet = "L’objet"
    amendement_9999.user_content.reponse = "La réponse"

    amendement = Amendement.create(
        lecture=lecture_senat,
        article=article7bis_senat,
        alinea="",
        num=42,
        rectif=1,
        auteur="M. DUPONT",
        groupe="RDSE",
        matricule="000000",
        corps="<p>L'article 1 est supprimé.</p>",
        expose="<p>Cet article va à l'encontre du principe d'égalité.</p>",
        resume="Suppression de l'article",
        position=3,
        avis="Favorable",
        objet="L’objet",
        reponse="La réponse",
    )

    DBSession.add_all(amendements_senat)
    DBSession.flush()

    amdt_list = AmendementList(amendements_senat + [amendement])

    assert amdt_list.similaires(amendement_6666) == [amendement_9999]
    assert amdt_list.similaires(amendement) == []

    parser = HTMLParser(
        generate_html_for_pdf(
            DummyRequest(),
            "print/multiple.html",
            {
                "amendements": AmendementList([amendement_6666, amendement]),
                "article_amendements": amdt_list,
            },
        ))

    assert _html_page_titles(parser) == [
        "Réponse",
        "Amendement nº 6666",
        "Réponse",
        "Amendement nº 42 rect.",
    ]
    response_node_6666, response_node_42_rect = parser.css(".reponse")

    assert _cartouche_to_list(response_node_6666) == [
        "Article",
        "Art. 1",
        "Amendements",
        "6666 et 9999",
        "Auteurs",
        "M. CLAUDE et M. JEAN",
        "Groupes",
        "Les Indépendants et Les Mécontents",
        "Avis",
        "Favorable",
    ]
    assert response_node_6666.css_first("div h5").text() == "Objet"
    assert "L’objet" in response_node_6666.css_first("div p").text()
    assert response_node_6666.css("div h5")[-1].text() == "Réponse"
    assert "La réponse" in response_node_6666.css("div p")[-1].text()

    assert _cartouche_to_list(response_node_42_rect) == [
        "Article",
        "Art. 7 bis",
        "Amendement",
        "42 rect.",
        "Auteur",
        "M. DUPONT",
        "Groupe",
        "RDSE",
        "Avis",
        "Favorable",
    ]
    assert response_node_42_rect.css_first("div h5").text() == "Objet"
    assert "L’objet" in response_node_42_rect.css_first("div p").text()
    assert response_node_42_rect.css("div h5")[-1].text() == "Réponse"
    assert "La réponse" in response_node_42_rect.css("div p")[-1].text()
Exemple #7
0
def test_generate_pdf_with_amendement_content_factor_many_authors_groups(
        app, lecture_senat, article1_senat, amendements_senat):
    from zam_repondeur.models import Amendement, DBSession
    from zam_repondeur.services.import_export.pdf import generate_html_for_pdf

    amendement_6666 = amendements_senat[0]
    amendement_6666.auteur = "M. JEAN"
    amendement_6666.groupe = "Les Indépendants"
    amendement_6666.user_content.avis = "Défavorable"
    amendement_6666.user_content.objet = "L’objet"
    amendement_6666.user_content.reponse = "La réponse"
    DBSession.add(amendement_6666)

    amendement_9999 = amendements_senat[1]
    amendement_9999.auteur = "M. JEAN"
    amendement_9999.groupe = "Les Indépendants"
    amendement_9999.user_content.avis = "Défavorable"
    amendement_9999.user_content.objet = "L’objet"
    amendement_9999.user_content.reponse = "La réponse"
    DBSession.add(amendement_9999)

    Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        num=42,
        position=3,
        auteur="M. DUPONT",
        groupe="RDSE",
        avis="Défavorable",
        objet="L’objet",
        reponse="La réponse",
    )

    Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        num=57,
        position=4,
        auteur="M. DURAND",
        groupe="Les Républicains",
        avis="Défavorable",
        objet="L’objet",
        reponse="La réponse",
    )

    Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        num=72,
        position=5,
        auteur="M. MARTIN",
        groupe="Les Républicains",
        avis="Défavorable",
        objet="L’objet",
        reponse="La réponse",
    )

    Amendement.create(
        lecture=lecture_senat,
        article=article1_senat,
        num=83,
        position=6,
        auteur="M. MARTIN",
        groupe="Les Républicains",
        avis="Défavorable",
        objet="L’objet",
        reponse="La réponse",
    )

    parser = HTMLParser(
        generate_html_for_pdf(DummyRequest(), "print/all.html",
                              {"lecture": lecture_senat}))

    assert (
        parser.css_first(".first-page .lecture").text() ==
        "Sénat, session 2017-2018, Séance publique, Numéro lecture, texte nº\xa063"
    )
    assert _html_page_titles(parser) == [
        "Article 1",
        "Réponse",
        "Amendement nº 6666",
        "Amendement nº 9999",
        "Amendement nº 42",
        "Amendement nº 57",
        "Amendement nº 72",
        "Amendement nº 83",
    ]
    response_node = parser.css_first(".reponse")
    assert _cartouche_to_list(response_node) == [
        "Article",
        "Art. 1",
        "Amendements",
        "6666, 9999, 42, 57, 72 et 83",
        "Auteurs",
        "M. DUPONT, M. DURAND, M. JEAN et M. MARTIN",
        "Groupes",
        "Les Indépendants, Les Républicains et RDSE",
        "Avis",
        "Défavorable",
    ]
    assert response_node.css_first("div h5").text() == "Objet"
    assert "L’objet" in response_node.css_first("div p").text()
    assert response_node.css("div h5")[-1].text() == "Réponse"
    assert "La réponse" in response_node.css("div p")[-1].text()