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"
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
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
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 == {}
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
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
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
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
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
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
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)
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
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
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)
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
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