Sigue estos pasos para levantar y ejecutar el proyecto de Django utilizando Docker.
Levanta los contenedores en segundo plano:
docker compose up --build -dSi los contenedores ya están construidos previamente, puedes simplemente ejecutar:
docker compose up -dVerifica que los servicios estén corriendo:
docker compose psAccede al contenedor de la aplicación:
docker compose exec app bashNavega al directorio del proyecto Django:
cd solicitudesInicia el servidor de desarrollo de Django:
python manage.py runserver 0:8000La aplicación estará disponible en: http://localhost:8000
Para detener y eliminar los contenedores:
docker compose downEl proyecto cuenta con pruebas unitarias (usando el framework de Django) y pruebas de aceptación (implementadas con Behave).
Las pruebas unitarias se enfocan en validar la lógica y las validaciones internas del código, como funciones, modelos o formularios.
Ejemplo: Validar que el método calcular_total() de un modelo funcione correctamente.
# solicitudes/tests/test_models.py
from django.test import TestCase
from solicitudes.models import Solicitud
class SolicitudModelTest(TestCase):
def test_calculo_total_correcto(self):
solicitud = Solicitud.objects.create(cantidad=5, precio_unitario=20)
total = solicitud.calcular_total()
self.assertEqual(total, 100)Ejecutar todas las pruebas unitarias:
python manage.py testEjecutar una prueba unitaria específica (por ejemplo, de formularios):
python manage.py test tipo_solicitudes.tests.tests_formsEsto ejecutará únicamente las pruebas definidas dentro del archivo tests_forms.py en la app tipo_solicitudes.
Las pruebas de aceptación validan la funcionalidad completa del sistema, simulando la interacción del usuario con los flujos reales de la aplicación.
En este proyecto se implementan con Behave, siguiendo el enfoque BDD (Behavior Driven Development), donde las pruebas se describen en lenguaje natural (.feature).
Las pruebas se encuentran en:
solicitudes/pruebas_aceptacion/
Ejemplo de archivo .feature:
Feature: Envío de solicitudes
Como usuario
Quiero enviar una solicitud
Para que el sistema la registre correctamente
Scenario: Crear una nueva solicitud
Given que el usuario está en el formulario de solicitudes
When completa los datos requeridos y envía el formulario
Then la solicitud se guarda exitosamente en la base de datosEjemplo de pasos en Python (steps/solicitud_steps.py):
from behave import given, when, then
from django.urls import reverse
from django.test import Client
from solicitudes.models import Solicitud
@given('que el usuario está en el formulario de solicitudes')
def step_impl(context):
context.client = Client()
@when('completa los datos requeridos y envía el formulario')
def step_impl(context):
context.response = context.client.post(reverse('crear_solicitud'), {
"nombre": "Esmeralda Espino",
"cantidad": 3,
"precio_unitario": 50
})
@then('la solicitud se guarda exitosamente en la base de datos')
def step_impl(context):
assert context.response.status_code == 302
assert Solicitud.objects.filter(nombre="Esmeralda Espino").exists()Ejecutar pruebas de aceptación con Behave:
python manage.py behave solicitudes/pruebas_aceptacion