test_visa_free_config.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. from app.visa_free_config_fetchers import get_fetcher
  4. from app.services.visa_free_config_service import fetch_visa_free_config
  5. def test_vfs_fetcher_free_config():
  6. fetcher = get_fetcher("vfs")
  7. cfg = fetcher.fetch_free_config(origin="ie", target="nl", visa_type="tourist", vac_code="dub")
  8. assert cfg["mission_code"] == "nld"
  9. assert "apt_configs" in cfg
  10. routing_key = "slot.dub.nl.tourist"
  11. assert routing_key in cfg["apt_configs"]
  12. assert cfg["apt_configs"][routing_key]["vac_code"] == "NTDB"
  13. def test_bls_fetcher_free_config():
  14. fetcher = get_fetcher("bls")
  15. cfg = fetcher.fetch_free_config(origin="ie", target="es", visa_type="tourist", vac_code="dub")
  16. assert cfg["domain"] == "ireland.blsspainglobal.com"
  17. def test_tls_fetcher_free_config():
  18. fetcher = get_fetcher("tls")
  19. cfg = fetcher.fetch_free_config(origin="gb", target="fr", visa_type="tourist", vac_code="lon")
  20. assert cfg["location"] == "London"
  21. assert cfg["site_id"] == "gbLON2fr"
  22. def test_tls_fetcher_auto_generate():
  23. fetcher = get_fetcher("tls")
  24. cfg = fetcher.fetch_free_config(origin="cn", target="fr", visa_type="tourist", vac_code="can")
  25. assert cfg["tls_url"] == "https://visas-fr.tlscontact.com/en-us/country/cn/vac/cnCAN2fr"
  26. assert cfg["site_id"] == "cnCAN2fr"
  27. assert cfg["location"] == "Guangzhou"
  28. def test_pol_fetcher_auto_generate():
  29. cfg = fetch_visa_free_config(provider="pol", origin="cn", target="pl", visa_type="tourist", vac="bjs")
  30. assert cfg["service_type"] == "Wiza Schengen"
  31. assert cfg["location"] == "Beijing"
  32. def test_de_fetcher_auto_generate():
  33. cfg = fetch_visa_free_config(provider="de", origin="cn", target="de", visa_type="tourist", vac="bjs")
  34. assert cfg["base_url"] == "https://cn-appointment.visametric.com"
  35. assert cfg["consularid"] == 1
  36. def test_usa_fetcher_free_config():
  37. cfg = fetch_visa_free_config(provider="usa", origin="cn", target="us", visa_type="tourist", vac="bjs")
  38. assert cfg["usa_url"] == "https://www.usvisascheduling.com"
  39. assert cfg["location"] == "BEIJING"
  40. from fastapi.testclient import TestClient
  41. from app.main import app
  42. from app.core.auth import get_current_user
  43. class DummyUser:
  44. id = 1
  45. role = "user"
  46. app.dependency_overrides[get_current_user] = lambda: DummyUser()
  47. client = TestClient(app)
  48. def test_visa_free_config_http_post():
  49. response = client.post("/api/visa/free-config/fetch", json={
  50. "provider": "tls",
  51. "origin": "cn",
  52. "target": "fr",
  53. "visa_type": "tourist",
  54. "vac": "can"
  55. })
  56. assert response.status_code == 200
  57. body = response.json()
  58. assert body["code"] == 0
  59. assert body["data"]["tls_url"] == "https://visas-fr.tlscontact.com/en-us/country/cn/vac/cnCAN2fr"
  60. def test_visa_free_config_http_get():
  61. response = client.get("/api/visa/free-config/fetch?provider=usa&origin=cn&target=us&visa_type=tourist&vac=bjs")
  62. assert response.status_code == 200
  63. body = response.json()
  64. assert body["code"] == 0
  65. assert body["data"]["usa_url"] == "https://www.usvisascheduling.com"