Fixtures integrados en Python
tmp_path, monkeypatch y capsys cubren casi todo lo que una prueba necesita.
import os
from pathlib import Path
def contar_lineas(ruta):
return len(Path(ruta).read_text().splitlines())
def reportar(nombre):
print(f"el tema es {os.environ.get('TYPESTAR_THEME', 'default')}")
return nombre
def test_cuenta_lineas(tmp_path):
objetivo = tmp_path / "intentos.txt"
objetivo.write_text("uno\ndos\ntres\n")
assert contar_lineas(objetivo) == 3
def test_lee_el_entorno(monkeypatch, capsys):
monkeypatch.setenv("TYPESTAR_THEME", "monokai")
reportar("x")
assert "monokai" in capsys.readouterr().out
Cómo funciona
tmp_pathes un directorio fresco por prueba.monkeypatchdeshace sus cambios cuando la prueba termina.capsyscaptura lo que el código imprimió.
Palabras clave y builtins usados aquí
assertdeflenprintreturn
El intento, en números
- Líneas
- 23
- Caracteres a escribir
- 517
- Tokens
- 130
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 74 segundos.
Paso 2 de 2 en Fixtures; paso 5 de 9 en Testing con pytest.