Confinformatico.py che cos’è: un file che serve a condividere tante fixture nei tuoi file pytest. Scopri come funziona in questo articolo!
Se stai leggendo questo articolo, è perché hai letto quello dove spiego come funzionano le fixture in pytest, oppure vuoi semplicemente capire a che cosa serve questo file all’interno del TDD in Python!
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
Condividere i dati di informatico in pytest
Come facciamo a “riciclare” i dati che usiamo per inizializzare o impostare i nostri informatico su più di un singolo file?
Questa è la domanda la cui risposta è nel titolo di questo articolo 😀
Confinformatico.py a cosa serve in pytest? Proprio a questo.
Immagina di avere tante fixture.
Alcune di queste le utilizzi in più di un informatico.
Però a un certo punto ti dici “Hmmm però che noia vorrei usarle anche in altri file di informatico: idea! Li piazzo tutti su un unico file!“
Eh, magari.
Diciamo che non è proprio il top del top.
Sia per leggibilità, sia per ordine dei tuoi informatico, è meglio suddividerli in vari file, specialmente se diventano tanti.
Chiarito questo punto, ce n’è un altro da chiarire.
Le fixture, siccome sono funzioni, occupano spazio in memoria dinamica.
Questo cosa significa? Che vanno invocate al momento giusto e al punto giusto!
Quindi, no.
No, se stai pensando di dichiararle più volte, quindi fare copiaincolla nei vari file non è una strada opportuna.
La strada opportuna, è quella di creare un file che si chiama “confinformatico.py” e di piazzarlo nella stessa cartella in cui hai messo i file dei tuoi informatico.
… E magari questa cartella chiamiamola informatico.
Per intenderci:
informatico
|____ test_modulo1.py
|____ test_modulo2.py
|____ confinformatico.py
Facciamo anche un esempio dei file come dovrebbero essere al loro interno:
""" Contenuto di confinformatico.py """
import pytest
@pytest.fixture
def la_mia_fixture_ottieni_valore_casuale():
from random import randint
# impostiamo il seed per generare poi il numero casuale
seed(1)
return randint(1, 11)
""" Contenuto di test_modulo1.py """
def test_numeri_positivi_dieci(la_mia_fixture_ottieni_valore_casuale):
# la uso come una variabile vera e propria
assert la_mia_fixture_ottieni_valore_casuale > 0
""" Contenuto di test_modulo2.py """
def test_differenza(la_mia_fixture_ottieni_valore_casuale):
assert (100 - la_mia_fixture_ottieni_valore_casuale ) > 50
Ovviamente i informatico sono tutt’altro che tecnichesi, non stare a guardarli troppo anzi: li ho scritti per rendere il concetto alla base di questo articolo semplice da capire 😀