110 lines
4.4 KiB
Python
110 lines
4.4 KiB
Python
import io
|
|
import sys
|
|
import urllib.request
|
|
import json
|
|
import ssl
|
|
|
|
if sys.platform == 'win32':
|
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
|
|
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')
|
|
|
|
ctx = ssl.create_default_context()
|
|
ctx.check_hostname = False
|
|
ctx.verify_mode = ssl.CERT_NONE
|
|
|
|
API_URL = "https://pacifictrans.almeira.com.co"
|
|
|
|
print("1. Consultando tarifas activas...")
|
|
req = urllib.request.Request(f"{API_URL}/api/tariffs")
|
|
with urllib.request.urlopen(req, context=ctx, timeout=10) as res:
|
|
data = json.loads(res.read().decode("utf-8"))
|
|
config = data.get("config", {})
|
|
print(f" Tarifa Pasajero: ${config.get('tarifaPasajeroFija'):,} COP")
|
|
print(f" Precio Base Paquete: ${config.get('precioBasePaquete'):,} COP")
|
|
print(f" Recargo Envio Urgente: ${config.get('recargoEnvioUrgente', 0):,} COP")
|
|
assert "recargoEnvioUrgente" in config, "recargoEnvioUrgente debe estar en la configuracion de tarifas"
|
|
|
|
print("\n2. Simulando despacho de paquete urgente...")
|
|
payload_urgent = {
|
|
"remitenteNombre": "Carlos Almeira",
|
|
"remitenteTelefono": "3167455877",
|
|
"destinatarioNombre": "Destinatario Test",
|
|
"destinatarioTelefono": "3101234567",
|
|
"tipoBulto": "SOBRE",
|
|
"descripcion": "Documentos urgentes de prueba",
|
|
"direccionRecogida": "Calle 5 #66-20, Cali",
|
|
"coordenadasRecogida": [-76.5320, 3.4215],
|
|
"ciudadOrigen": "CALI",
|
|
"direccionEntrega": "Terminal Buenaventura",
|
|
"coordenadasEntrega": [-77.0250, 3.8820],
|
|
"ciudadDestino": "BUENAVENTURA",
|
|
"esEnvioUrgente": True,
|
|
"modalidadTiempo": "INMEDIATO"
|
|
}
|
|
req_flete = urllib.request.Request(
|
|
f"{API_URL}/api/trips/package",
|
|
data=json.dumps(payload_urgent).encode("utf-8"),
|
|
headers={"Content-Type": "application/json"}
|
|
)
|
|
with urllib.request.urlopen(req_flete, context=ctx, timeout=10) as res:
|
|
cotizacion = json.loads(res.read().decode("utf-8"))
|
|
print(f" Resultado paquete: success={cotizacion.get('success')}")
|
|
trip = cotizacion.get('trip', {})
|
|
print(f" Total flete urgente: ${trip.get('precio', 0):,} COP")
|
|
print(f" Modalidad tiempo: {trip.get('modalidadTiempo')}")
|
|
print(f" Es urgente: {trip.get('esEnvioUrgente')}")
|
|
print(f" Recargo urgencia aplicado: ${trip.get('recargoUrgencia', 0):,} COP")
|
|
|
|
|
|
print("\n3. Simulando reserva de pasajero programada (Llegada en destino)...")
|
|
payload_pool = {
|
|
"sentido": "CALI_A_BUENAVENTURA",
|
|
"direccionTexto": "Calle 5 #66-20, Cali",
|
|
"coordenadas": [-76.5320, 3.4215],
|
|
"puntoFijoBuenaventura": {
|
|
"nombre": "Terminal de Transportes de Buenaventura",
|
|
"coordenadas": [-77.0250, 3.8820]
|
|
},
|
|
"cantidadPasajeros": 1,
|
|
"pasajeros": [
|
|
{
|
|
"nombre": "Carlos Almeira",
|
|
"telefono": "3167455877",
|
|
"direccionRecogida": "Calle 5 #66-20, Cali"
|
|
}
|
|
],
|
|
"metodoPago": "EFECTIVO",
|
|
"modalidadTiempo": "PROGRAMADO",
|
|
"tipoProgramacion": "HORA_LLEGADA_DESTINO",
|
|
"fechaProgramada": "2026-10-25",
|
|
"horaProgramada": "14:00",
|
|
"horaSugeridaRecogida": "11:00"
|
|
}
|
|
req_pool = urllib.request.Request(
|
|
f"{API_URL}/api/trips/pool",
|
|
data=json.dumps(payload_pool).encode("utf-8"),
|
|
headers={"Content-Type": "application/json"}
|
|
)
|
|
with urllib.request.urlopen(req_pool, context=ctx, timeout=10) as res:
|
|
pool_res = json.loads(res.read().decode("utf-8"))
|
|
print(f" Resultado pooling: success={pool_res.get('success')}")
|
|
trip_p = pool_res.get('trip', {})
|
|
print(f" Modalidad viaje: {trip_p.get('modalidadTiempo')}")
|
|
print(f" Tipo programacion: {trip_p.get('tipoProgramacion')}")
|
|
print(f" Fecha programada: {trip_p.get('fechaProgramada')}")
|
|
print(f" Hora en destino: {trip_p.get('horaProgramada')}")
|
|
print(f" Hora sugerida recogida: {trip_p.get('horaSugeridaRecogida')}")
|
|
|
|
print("\n4. Verificando que index.html contenga los selectores de modalidad de tiempo...")
|
|
req_html = urllib.request.Request(f"{API_URL}/")
|
|
with urllib.request.urlopen(req_html, context=ctx, timeout=10) as res:
|
|
html = res.read().decode("utf-8")
|
|
assert "time-modality-container" in html, "Falta time-modality-container en HTML"
|
|
assert "smart-eta-box" in html, "Falta smart-eta-box en HTML"
|
|
assert "cfg-recargo-urgente" in html, "Falta cfg-recargo-urgente en HTML"
|
|
print(" [OK] Elementos visuales y selectores de tiempo presentes en el frontend.")
|
|
|
|
print("\n[OK] Verificacion completa de modalidades de viaje y fletes superada con 100% de exito.")
|
|
|
|
|