Пример #1
0
def test_post_article_edit_form_title_redirect_next_with_apres(
        app, lecture_an, amendements_an, user_david):
    from zam_repondeur.models import Amendement, Article, DBSession

    with transaction.manager:
        article_1_apres = Article.create(lecture=lecture_an,
                                         type="article",
                                         num="1",
                                         pos="après")
        DBSession.add(article_1_apres)
        article_2 = Article.create(lecture=lecture_an, type="article", num="2")
        DBSession.add(article_2)
        DBSession.add(lecture_an)

    amendement = DBSession.query(Amendement).filter(
        Amendement.num == 999).one()
    assert amendement.article.user_content.title == ""

    resp = app.get(
        "/dossiers/plfss-2018/lectures/an.15.269.PO717460/articles/article.1../",
        user=user_david,
    )
    form = resp.forms["edit-article"]
    form["title"] = "Titre article"
    resp = form.submit()

    assert resp.status_code == 302
    assert resp.location == (
        "https://zam.test"
        "/dossiers/plfss-2018/lectures/an.15.269.PO717460/articles/article.2../"
    )

    amendement = DBSession.query(Amendement).filter(
        Amendement.num == 999).one()
    assert amendement.article.user_content.title == "Titre article"
Пример #2
0
    def test_previous_next_displayable(self, article1_an, lecture_an,
                                       amendements_an):
        from zam_repondeur.models import Article, DBSession

        article_6 = Article.create(lecture=lecture_an, type="article", num=6)
        apres_article_6 = Article.create(lecture=lecture_an,
                                         type="article",
                                         num=6,
                                         pos="après")
        avant_article_7 = Article.create(lecture=lecture_an,
                                         type="article",
                                         num=7,
                                         pos="avant")
        article_7 = Article.create(lecture=lecture_an, type="article", num=7)
        amendements_an[0].article = avant_article_7
        amendements_an[0].user_content.avis = "Favorable"
        DBSession.add_all(amendements_an)

        assert article1_an.previous_displayable_article is None
        assert article1_an.next_displayable_article == article_6
        assert article_6.previous_displayable_article == article1_an
        assert article_6.next_displayable_article == avant_article_7
        assert apres_article_6.previous_displayable_article == article_6
        assert apres_article_6.next_displayable_article == avant_article_7
        assert avant_article_7.previous_displayable_article == article_6
        assert avant_article_7.next_displayable_article == article_7
        assert article_7.previous_displayable_article == avant_article_7
        assert article_7.next_displayable_article is None
Пример #3
0
    def test_avant_apres(self, lecture_an):
        from zam_repondeur.models import Article

        article_6 = Article.create(lecture=lecture_an, type="article", num=6)
        apres_article_6 = Article.create(lecture=lecture_an,
                                         type="article",
                                         num=6,
                                         pos="après")
        avant_article_7 = Article.create(lecture=lecture_an,
                                         type="article",
                                         num=7,
                                         pos="avant")
        article_7 = Article.create(lecture=lecture_an, type="article", num=7)

        assert article_6 < apres_article_6 < avant_article_7 < article_7
Пример #4
0
    def test_intersticial_articles_are_not_updated(self, app, lecture_an):
        from zam_repondeur.models import Article, DBSession
        from zam_repondeur.services.fetch.articles import get_articles

        article_avant_2 = Article.create(lecture=lecture_an,
                                         type="article",
                                         num="2",
                                         pos="avant")
        DBSession.add(article_avant_2)

        responses.add(
            responses.GET,
            "http://www.assemblee-nationale.fr/15/projets/pl0269.asp",
            body=(SAMPLE_DATA_DIR / "pl0269.html").read_text(
                "utf-8", "ignore"),
            status=200,
        )

        changed = get_articles(lecture_an)

        assert changed

        article = DBSession.query(Article).filter(
            Article.pos == "avant").first()
        assert article.user_content.title == ""
        assert article.content == {}
Пример #5
0
def annexe_an(db, lecture_an):
    from zam_repondeur.models import Article

    with transaction.manager:
        article = Article.create(lecture=lecture_an, type="annexe")

    return article
Пример #6
0
def article1_senat(db, lecture_senat):
    from zam_repondeur.models import Article

    with transaction.manager:
        article = Article.create(lecture=lecture_senat, type="article", num="1")

    return article
Пример #7
0
def chapitre_1er_an(db, lecture_an):
    from zam_repondeur.models import Article

    with transaction.manager:
        article = Article.create(lecture=lecture_an, type="chapitre", num="Ier")

    return article
Пример #8
0
def test_format(lecture_an, type_, pos, num, mult, output):
    from zam_repondeur.models import Article

    article = Article.create(lecture=lecture_an,
                             type=type_,
                             num=num,
                             mult=mult,
                             pos=pos)
    assert article.format(short=False) == output
Пример #9
0
def test_url_key(lecture_an, type_, pos, num, mult, output):
    from zam_repondeur.models import Article

    article = Article.create(lecture=lecture_an,
                             type=type_,
                             num=num,
                             mult=mult,
                             pos=pos)
    assert article.url_key == output
Пример #10
0
def test_stringify(lecture_an, type_, pos, num, mult, output):
    from zam_repondeur.models import Article

    article = Article.create(lecture=lecture_an,
                             type=type_,
                             num=num,
                             mult=mult,
                             pos=pos)
    assert str(article) == output
Пример #11
0
 def make_article(type_, s):
     if " " in s:
         num, mult = s.split(" ", 1)
     else:
         num, mult = s, ""
     return Article.create(lecture=lecture_an,
                           type=type_,
                           num=num,
                           mult=mult)
Пример #12
0
def article7bis_an(db, lecture_an):
    from zam_repondeur.models import Article

    with transaction.manager:
        article = Article.create(
            lecture=lecture_an, type="article", num="7", mult="bis"
        )

    return article
Пример #13
0
def article1av_an(db, lecture_an):
    from zam_repondeur.models import Article

    with transaction.manager:
        article = Article.create(
            lecture=lecture_an, type="article", num="1", pos="avant"
        )

    return article
Пример #14
0
    def test_types(self, lecture_an):
        from zam_repondeur.models import Article

        titre = Article.create(lecture=lecture_an, type="titre")
        motion = Article.create(lecture=lecture_an, type="motion")
        chapitre = Article.create(lecture=lecture_an, type="chapitre")
        section = Article.create(lecture=lecture_an, type="section")
        sous_section = Article.create(lecture=lecture_an, type="sous-section")
        article = Article.create(lecture=lecture_an, type="article")
        annexe = Article.create(lecture=lecture_an, type="annexe")
        vide = Article.create(lecture=lecture_an, type="")
        assert (titre < motion < chapitre < section < sous_section < article <
                annexe < vide)
Пример #15
0
def article1_plf2018_an_premiere_lecture_seance_publique_2(
        db, lecture_plf2018_an_premiere_lecture_seance_publique_2):
    from zam_repondeur.models import Article

    with transaction.manager:
        article = Article.create(
            lecture=lecture_plf2018_an_premiere_lecture_seance_publique_2,
            type="article",
            num="1",
        )

    return article
Пример #16
0
    def test_previous_next(self, lecture_an):
        from zam_repondeur.models import Article

        article_6 = Article.create(lecture=lecture_an, type="article", num=6)
        apres_article_6 = Article.create(lecture=lecture_an,
                                         type="article",
                                         num=6,
                                         pos="après")
        avant_article_7 = Article.create(lecture=lecture_an,
                                         type="article",
                                         num=7,
                                         pos="avant")
        article_7 = Article.create(lecture=lecture_an, type="article", num=7)

        assert article_6.previous_article is None
        assert article_6.next_article == apres_article_6
        assert apres_article_6.previous_article == article_6
        assert apres_article_6.next_article == avant_article_7
        assert avant_article_7.previous_article == apres_article_6
        assert avant_article_7.next_article == article_7
        assert article_7.previous_article == avant_article_7
        assert article_7.next_article is None