test_cpa_upload.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from types import SimpleNamespace
  2. from platforms.chatgpt import cpa_upload as cpa_upload_module
  3. def test_upload_to_team_manager_reuses_cpa_upload(monkeypatch) -> None:
  4. calls: list[tuple[dict[str, str], str, str]] = []
  5. def fake_upload_to_cpa(token_data, api_url=None, api_key=None, proxy=None): # type: ignore[no-untyped-def]
  6. del proxy
  7. calls.append((token_data, api_url, api_key))
  8. return True, "upload success"
  9. monkeypatch.setattr("platforms.chatgpt.cpa_upload.upload_to_cpa", fake_upload_to_cpa)
  10. account = SimpleNamespace(
  11. email="team@example.com",
  12. expires_at=None,
  13. last_refresh=None,
  14. id_token="id-token",
  15. account_id="acct-1",
  16. access_token="access-token",
  17. refresh_token="refresh-token",
  18. )
  19. ok, message = cpa_upload_module.upload_to_team_manager(
  20. account,
  21. api_url="https://example.com",
  22. api_key="secret",
  23. )
  24. assert ok is True
  25. assert message == "team manager upload success"
  26. assert calls and calls[0][0]["email"] == "team@example.com"
  27. def test_test_cpa_connection_requires_url() -> None:
  28. ok, message = cpa_upload_module.test_cpa_connection(api_url=None, api_key="secret")
  29. assert ok is False
  30. assert message == "CPA API URL is required"