Argumentos de consola y pruebas
Objetivos
Al terminar podrás explicar el concepto principal y adaptar el ejemplo a un caso sencillo.
Concepto
argparse lee opciones pasadas al ejecutar el programa, como --archivo datos.csv. unittest comprueba resultados esperados para funciones. Una prueba llama a la función con un caso conocido y compara el resultado, por ejemplo mediante assertEqual. Las pruebas cubren los casos que escribiste; no prueban por sí solas todas las situaciones posibles. Consulta la documentación oficial de argparse y la documentación oficial de unittest.
Ejemplo
import argparse
parser = argparse.ArgumentParser(description="Resume gastos.")
parser.add_argument("--archivo", default="gastos.csv")
args = parser.parse_args()
print(f"Archivo elegido: {args.archivo}")py programa.py --archivo datos.csv imprime Archivo elegido: datos.csv. Puedes ejecutar pruebas con py -m unittest o python3 -m unittest.
Práctica guiada
Agrega una opción --ayuda implícita con argparse y crea una prueba para sumar [2, 3].
Reto
Añade el argumento --archivo a un lector CSV y prueba el total de dos filas.
Ver respuesta al reto
import argparse
import csv
from decimal import Decimal
parser = argparse.ArgumentParser()
parser.add_argument("--archivo", default="gastos.csv")
args = parser.parse_args()
with open(args.archivo, encoding="utf-8", newline="") as archivo:
total = sum((Decimal(f["monto"]) for f in csv.DictReader(archivo)), Decimal("0"))
print(total)Una prueba unitaria puede pasar dos filas con montos 2.50 y 3.00 a la función que calcula el total y comprobar que devuelve 5.50.
Quiz
Comprobación
Revisa que el ejemplo produzca el resultado esperado y prueba también un caso límite relacionado con la lección.