feat(tests): Añadido soporte de autenticación con access token en tests GET de todos los módulos de reference_data. Ahora los tests usan un fixture access_token y envían el header Authorization. Módulos actualizados: containers, countries, currency_types, material_types, states, valuation_methods, incoterms, payment_methods, sectors, customs_sections, customs_warehouses, invoice_types, pedimento_codes, pedimento_regimens, code_pedimento_regimens, transport_modes, transport_types.

This commit is contained in:
2025-11-01 17:15:09 -06:00
parent 8a5ada5ca1
commit e70ab22b4e
54 changed files with 1140 additions and 185 deletions

View File

@@ -25,26 +25,24 @@ class TenantMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next: Callable):
# Rutas públicas que no requieren tenant
public_paths = [
"/api/docs",
# Permitir acceso sin autenticación a rutas de documentación y salud
doc_prefixes = [
"/api/redoc",
"/api/openapi.json",
"/api/v1/auth",
"/api/v1/auth",
"/api/v1/status",
"/api/openapi.json"
]
public_prefixes = [
"/api/v1/auth",
"/api/v1/status",
"/api/health",
"/api/"
]
# Verificar si la ruta es pública (comparación exacta o prefijo)
is_public = False
for path in public_paths:
if request.url.path == path or (path != "/" and request.url.path.startswith(path)):
is_public = True
break
if is_public:
path = request.url.path
# Permitir cualquier subruta de docs/redoc/openapi.json (por ejemplo, /api/docs, /api/docs/, /api/docs/oauth2-redirect)
if any(path == prefix or path.startswith(prefix + "/") for prefix in doc_prefixes):
return await call_next(request)
# Permitir rutas públicas exactas o con prefijo
if any(path == prefix or (prefix != "/" and path.startswith(prefix)) for prefix in public_prefixes):
return await call_next(request)
# Extraer token y obtener tenant