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.py
Ahora 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.objects.create(
producto ="Producto de prueba",
nombre=10.00,
precio=5
cantidad
)assert producto.nombre == "Producto de prueba"
assert producto.precio == 10.00
assert producto.cantidad == 5
@pytest.mark.django_db
def test_str_producto():
= Producto.objects.create(
producto ="Producto de prueba",
nombre=10.00,
precio=5
cantidad
)assert str(producto) == "Producto de prueba"
Ahora vamos a ejecutar el comando pytest
pytest
Si 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.