def get_senat_dossier_ref_from_cache_or_scrape(dossier_id: str) -> DossierRef: """ Get dossier from the Redis cache (if recent) or scrape it """ dossier_ref_senat = repository.get_senat_scraping_dossier_ref(dossier_id) if dossier_ref_senat is None: dossier_ref_senat = create_dossier_ref(dossier_id) return dossier_ref_senat
def test_ppl18_462(self): """ Simple case: commission, then séance publique on adopted text """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-462") == DossierRef( uid="ppl18-462", titre= "Participation des conseillers de Lyon aux élections sénatoriales", slug="participation-conseillers-lyon-elections-senatoriales", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-462.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2019X462", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=462, titre_long="", titre_court="", date_depot=datetime.date(2019, 4, 16), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X552", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=552, titre_long="", titre_court="", date_depot=datetime.date(2019, 6, 5), ), organe="PO78718", partie=None, ), ], )
def test_ppl18_043(self): """ Première & nouvelle lecture """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-043") == DossierRef( uid="ppl18-043", titre= "Directeur général de l'Agence nationale de la cohésion des territoires", # noqa slug="directeur-general-agence-nationale-cohesion-territoires", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-043.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2018X43", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=43, titre_long="", titre_court="", date_depot=datetime.date(2018, 10, 16), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2018X100", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=100, titre_long="", titre_court="", date_depot=datetime.date(2018, 10, 31), ), organe="PO78718", partie=None, ), ], )
def test_ppl17_699(self): """ Simple case: commission, then séance publique on adopted text """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl17-699") == DossierRef( uid="ppl17-699", titre= "Instituer un médiateur territorial dans certaines collectivités", slug="instituer-mediateur-territorial-certaines-collectivites", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl17-699.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2018X699", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=699, titre_long="", titre_court="", date_depot=datetime.date(2018, 7, 30), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X547", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=547, titre_long="", titre_court="", date_depot=datetime.date(2019, 6, 5), ), organe="PO78718", partie=None, ), ], )
def test_ppl18_454(self): """ Commission has not adopted a new texte yet """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-454") == DossierRef( uid="ppl18-454", titre="Exploitation des réseaux radioélectriques mobiles", slug="exploitation-reseaux-radioelectriques-mobiles", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-454.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2019X454", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=454, titre_long="", titre_court="", date_depot=datetime.date(2019, 4, 11), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X454", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=454, titre_long="", titre_court="", date_depot=datetime.date(2019, 4, 11), ), organe="PO78718", partie=None, ), ], )
def test_ppl18_436(self): """ Commission does not vote a new texte """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-436") == DossierRef( uid="ppl18-436", titre="Accès des PME à la commande publique", slug="acces-pme-commande-publique", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-436.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2019X436", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=436, titre_long="", titre_court="", date_depot=datetime.date(2019, 4, 4), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X436", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=436, titre_long="", titre_court="", date_depot=datetime.date(2019, 4, 4), ), organe="PO78718", partie=None, ), ], )
def test_ppl18_386(self): """ Simple case: commission, then séance publique on adopted text """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-386") == DossierRef( uid="ppl18-386", titre="Clarifier diverses dispositions du droit électoral", slug="clarifier-diverses-dispositions-droit-electoral", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-386.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2019X386", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=386, titre_long="", titre_court="", date_depot=datetime.date(2019, 3, 19), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X445", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=445, titre_long="", titre_court="", date_depot=datetime.date(2019, 4, 10), ), organe="PO78718", partie=None, ), ], )
def test_ppl18_305(self): """ Commission does not vote a new texte """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-305") == DossierRef( uid="ppl18-305", titre="Création d'un statut de l'élu communal", slug="creation-statut-elu-communal", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-305.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2019X305", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=305, titre_long="", titre_court="", date_depot=datetime.date(2019, 2, 12), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X305", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=305, titre_long="", titre_court="", date_depot=datetime.date(2019, 2, 12), ), organe="PO78718", partie=None, ), ], )
def test_ppl18_260(self): """ Commission does not vote a new texte """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-260") == DossierRef( uid="ppl18-260", titre="Accès à l'énergie et lutte contre la précarité énergétique", slug="acces-energie-lutte-contre-precarite-energetique", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-260.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2019X260", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=260, titre_long="", titre_court="", date_depot=datetime.date(2019, 1, 22), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X260", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=260, titre_long="", titre_court="", date_depot=datetime.date(2019, 1, 22), ), organe="PO78718", partie=None, ), ], )
def test_ppr18_458(self): """ Résolution: the government is most likely not involved """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppr18-458") == DossierRef( uid="ppr18-458", titre="Clarifier et actualiser le Règlement du Sénat", slug="clarifier-actualiser-reglement-senat", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppr18-458.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPRSENAT2019X458", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=458, titre_long="", titre_court="", date_depot=datetime.date(2019, 4, 12), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPRSENAT2019X550", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=550, titre_long="", titre_court="", date_depot=datetime.date(2019, 6, 5), ), organe="PO78718", partie=None, ), ], )
def test_pjl18_532(self): """ Simple case: commission, then séance publique on adopted text """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("pjl18-532") == DossierRef( uid="pjl18-532", titre="Transformation de la fonction publique", slug="transformation-fonction-publique", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/pjl18-532.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PJLSENAT2019X532", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=532, titre_long="", titre_court="", date_depot=datetime.date(2019, 5, 29), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PJLSENAT2019X571", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=571, titre_long="", titre_court="", date_depot=datetime.date(2019, 6, 12), ), organe="PO78718", partie=None, ), ], )
def test_pjl18_526(self): """ Simple case: commission, then séance publique on adopted text """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("pjl18-526") == DossierRef( uid="pjl18-526", titre="Accords France-Suisse et France-Luxembourg", slug="accords-france-suisse-france-luxembourg", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/pjl18-526.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PJLSENAT2019X526", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=526, titre_long="", titre_court="", date_depot=datetime.date(2019, 5, 24), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PJLSENAT2019X567", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=567, titre_long="", titre_court="", date_depot=datetime.date(2019, 6, 12), ), organe="PO78718", partie=None, ), ], )
def test_pjl18_404(self): """ Simple case: commission, then séance publique on adopted text """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("pjl18-404") == DossierRef( uid="pjl18-404", titre="Organisation du système de santé", slug="organisation-systeme-sante", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/pjl18-404.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PJLSENAT2019X404", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=404, titre_long="", titre_court="", date_depot=datetime.date(2019, 3, 26), ), organe="", # commission X partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PJLSENAT2019X525", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=525, titre_long="", titre_court="", date_depot=datetime.date(2019, 5, 22), ), organe="PO78718", # séance publique partie=None, ), ], )
def test_ppl18_002(self): """ Première & nouvelle lecture """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-002") == DossierRef( uid="ppl18-002", titre="Agence nationale de la cohésion des territoires", slug="agence-nationale-cohesion-territoires", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-002.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2018X2", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=2, titre_long="", titre_court="", date_depot=datetime.date(2018, 10, 2), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2018X99", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=99, titre_long="", titre_court="", date_depot=datetime.date(2018, 10, 31), ), organe="PO78718", partie=None, ), LectureRef( phase=Phase.NOUVELLE_LECTURE, chambre=Chambre.SENAT, titre="Nouvelle lecture – Commissions", texte=TexteRef( uid="PPLSENAT2019X518", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=518, titre_long="", titre_court="", date_depot=datetime.date(2019, 5, 21), ), organe="", partie=None, ), LectureRef( phase=Phase.NOUVELLE_LECTURE, chambre=Chambre.SENAT, titre="Nouvelle lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X562", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=562, titre_long="", titre_court="", date_depot=datetime.date(2019, 6, 12), ), organe="PO78718", partie=None, ), ], )
def test_ppl18_229(self): """ This one is tricky: renvoi en commission après séance publique There are two séance publique 1re lecture: - one on the initial texte - one on the new texte voted by the commission the 2nd time There are actually 2 commission lectures on the same initial texte, but with different URLs for amendements: - http://www.senat.fr/amendements/commissions/2018-2019/10229/liste_depot.html - http://www.senat.fr/amendements/commissions/2018-2019/229/liste_depot.html Looks like they created a fake texte with number 10229. TODO: find a way to represent both commission lectures. """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("ppl18-229") == DossierRef( uid="ppl18-229", titre="Lutte contre l'habitat insalubre ou dangereux", slug="lutte-contre-habitat-insalubre-ou-dangereux", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/ppl18-229.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PPLSENAT2018X229", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=229, titre_long="", titre_court="", date_depot=datetime.date(2018, 12, 20), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2018X229", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=229, titre_long="", titre_court="", date_depot=datetime.date(2018, 12, 20), ), organe="PO78718", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PPLSENAT2019X536", type_=TypeTexte.PROPOSITION, chambre=Chambre.SENAT, legislature=None, numero=536, titre_long="", titre_court="", date_depot=datetime.date(2019, 5, 29), ), organe="PO78718", partie=None, ), ], )
def test_plfss2020(self): """ Projet de loi de financement de la sécurité sociale 2020 (27/11) """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("plfss2020") == DossierRef( uid="plfss2020", titre="Financement de la sécurité sociale pour 2020", slug="financement-securite-sociale-2020", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/plfss2020.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PLFSENAT2019X98", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=98, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 4), ), organe="", partie=None, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PLFSENAT2019X98", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=98, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 4), ), organe="PO78718", partie=None, ), LectureRef( chambre=Chambre.SENAT, phase=Phase.NOUVELLE_LECTURE, titre="Nouvelle lecture – Commissions", texte=TexteRef( uid="PLFSENAT2019X151", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=151, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 27), ), organe="", partie=None, ), LectureRef( chambre=Chambre.SENAT, phase=Phase.NOUVELLE_LECTURE, titre="Nouvelle lecture – Séance publique", texte=TexteRef( uid="PLFSENAT2019X151", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=151, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 27), ), organe="PO78718", partie=None, ), ], )
def test_pjlf2020(self): """ Projet de loi de finances 2020 (27/11) """ from zam_repondeur.models.chambre import Chambre from zam_repondeur.models.phase import Phase from zam_repondeur.services.fetch.an.dossiers.models import ( DossierRef, LectureRef, TexteRef, TypeTexte, ) from zam_repondeur.services.fetch.senat.scraping import create_dossier_ref assert create_dossier_ref("pjlf2020") == DossierRef( uid="pjlf2020", titre="Budget 2020", slug="budget-2020", an_url="", senat_url="https://www.senat.fr/dossier-legislatif/pjlf2020.html", lectures=[ LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PJLSENAT2019X139", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=139, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 21), ), organe="", partie=1, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Commissions", texte=TexteRef( uid="PJLSENAT2019X139", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=139, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 21), ), organe="", partie=2, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PJLSENAT2019X139", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=139, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 21), ), organe="PO78718", partie=1, ), LectureRef( phase=Phase.PREMIERE_LECTURE, chambre=Chambre.SENAT, titre="Première lecture – Séance publique", texte=TexteRef( uid="PJLSENAT2019X139", type_=TypeTexte.PROJET, chambre=Chambre.SENAT, legislature=None, numero=139, titre_long="", titre_court="", date_depot=datetime.date(2019, 11, 21), ), organe="PO78718", partie=2, ), ], )