Testing
Vamos a empezar la parte de testing para ello vamos a crear en la ruta raiz el archivo pytest.ini
[pytest]
DJANGO_SETTINGS_MODULE = inventario.test_settings
python_files = tests.py test_*.py *_tests.pyAhora vamos a crear el archivo test_settings.py en la carpeta inventario
from .settings import *
# Configuraciones adicionales para el entorno de prueba
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}Ahora vamos a crear el archivo test_productos.py en la carpeta inventario
import pytest
from productos.models import Producto
@pytest.mark.django_db
def test_crear_producto():
producto = Producto.objects.create(
nombre="Producto de prueba",
precio=10.00,
cantidad=5
)
assert producto.nombre == "Producto de prueba"
assert producto.precio == 10.00
assert producto.cantidad == 5
@pytest.mark.django_db
def test_str_producto():
producto = Producto.objects.create(
nombre="Producto de prueba",
precio=10.00,
cantidad=5
)
assert str(producto) == "Producto de prueba"Ahora vamos a ejecutar el comando pytest
pytestSi todo esta correcto deberiamos ver algo como esto
====================================================== test session starts ======================================================
platform linux -- Python 3.12.3, pytest-8.2.0, pluggy-1.5.0
django: version: 4.2, settings: inventario.test_settings (from ini)
rootdir: /home/statick/workspaces/Curso_django_and_react/inventario_django
configfile: pytest.ini
plugins: django-4.8.0
collected 2 items
productos/tests/test_productos.py .. [100%]
======================================================= warnings summary ========================================================Con esto podemos ver que los test han pasado correctamente.
Podemos ver que pytest.ini tiene la configuracion de DJANGO_SETTINGS_MODULE = inventario.test_settings, esto es para que pytest pueda encontrar las configuraciones de django.