Files
fn_registry/python/functions/infra/hoppscotch_delete_request_test.py
T
egutierrez eb8dbf66a1 feat(infra): auto-commit con 88 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-11 00:16:46 +02:00

55 lines
1.7 KiB
Python

"""Tests para hoppscotch_delete_request.
Deterministas: monkeypatchean requests.post. Verifican el camino ok
(deleteRequest=true) y el de error (deleteRequest=false).
"""
import sys
import infra.hoppscotch_delete_request # noqa: F401
# El __init__ rebinds el nombre a la funcion; recuperamos el submodulo real.
mod = sys.modules["infra.hoppscotch_delete_request"]
class _FakeResponse:
def __init__(self, status_code=200, json_data=None):
self.status_code = status_code
self._json = json_data
def json(self):
if self._json is None:
raise ValueError("no json")
return self._json
def test_golden_delete_true(monkeypatch):
captured = {}
def fake_post(url, **kwargs):
captured["url"] = url
captured["kwargs"] = kwargs
return _FakeResponse(200, {"data": {"deleteRequest": True}})
monkeypatch.setattr(mod.requests, "post", fake_post)
result = mod.hoppscotch_delete_request("req-1", access_token="ACCESS-JWT")
assert result["status"] == "ok"
assert result["deleted"] == "req-1"
assert captured["url"].endswith("/graphql")
assert captured["kwargs"]["cookies"] == {"access_token": "ACCESS-JWT"}
assert "deleteRequest" in captured["kwargs"]["json"]["query"]
assert captured["kwargs"]["json"]["variables"] == {"r": "req-1"}
def test_error_delete_false(monkeypatch):
def fake_post(url, **kwargs):
return _FakeResponse(200, {"data": {"deleteRequest": False}})
monkeypatch.setattr(mod.requests, "post", fake_post)
result = mod.hoppscotch_delete_request("req-2", access_token="A")
assert result["status"] == "error"
assert "did not return true" in result["error"]