# -*- coding: utf-8 -*- import pytest from app.visa_free_config_fetchers import get_fetcher from app.services.visa_free_config_service import fetch_visa_free_config def test_vfs_fetcher_free_config(): fetcher = get_fetcher("vfs") cfg = fetcher.fetch_free_config(origin="ie", target="nl", visa_type="tourist", vac_code="dub") assert cfg["mission_code"] == "nld" assert "apt_configs" in cfg routing_key = "slot.dub.nl.tourist" assert routing_key in cfg["apt_configs"] assert cfg["apt_configs"][routing_key]["vac_code"] == "NTDB" def test_bls_fetcher_free_config(): fetcher = get_fetcher("bls") cfg = fetcher.fetch_free_config(origin="ie", target="es", visa_type="tourist", vac_code="dub") assert cfg["domain"] == "ireland.blsspainglobal.com" def test_tls_fetcher_free_config(): fetcher = get_fetcher("tls") cfg = fetcher.fetch_free_config(origin="gb", target="fr", visa_type="tourist", vac_code="lon") assert cfg["location"] == "London" assert cfg["site_id"] == "gbLON2fr" def test_tls_fetcher_auto_generate(): fetcher = get_fetcher("tls") cfg = fetcher.fetch_free_config(origin="cn", target="fr", visa_type="tourist", vac_code="can") assert cfg["tls_url"] == "https://visas-fr.tlscontact.com/en-us/country/cn/vac/cnCAN2fr" assert cfg["site_id"] == "cnCAN2fr" assert cfg["location"] == "Guangzhou" def test_pol_fetcher_auto_generate(): cfg = fetch_visa_free_config(provider="pol", origin="cn", target="pl", visa_type="tourist", vac="bjs") assert cfg["service_type"] == "Wiza Schengen" assert cfg["location"] == "Beijing" def test_de_fetcher_auto_generate(): cfg = fetch_visa_free_config(provider="de", origin="cn", target="de", visa_type="tourist", vac="bjs") assert cfg["base_url"] == "https://cn-appointment.visametric.com" assert cfg["consularid"] == 1 def test_usa_fetcher_free_config(): cfg = fetch_visa_free_config(provider="usa", origin="cn", target="us", visa_type="tourist", vac="bjs") assert cfg["usa_url"] == "https://www.usvisascheduling.com" assert cfg["location"] == "BEIJING" from fastapi.testclient import TestClient from app.main import app from app.core.auth import get_current_user class DummyUser: id = 1 role = "user" app.dependency_overrides[get_current_user] = lambda: DummyUser() client = TestClient(app) def test_visa_free_config_http_post(): response = client.post("/api/visa/free-config/fetch", json={ "provider": "tls", "origin": "cn", "target": "fr", "visa_type": "tourist", "vac": "can" }) assert response.status_code == 200 body = response.json() assert body["code"] == 0 assert body["data"]["tls_url"] == "https://visas-fr.tlscontact.com/en-us/country/cn/vac/cnCAN2fr" def test_visa_free_config_http_get(): response = client.get("/api/visa/free-config/fetch?provider=usa&origin=cn&target=us&visa_type=tourist&vac=bjs") assert response.status_code == 200 body = response.json() assert body["code"] == 0 assert body["data"]["usa_url"] == "https://www.usvisascheduling.com"