Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
"""Portal-URL resolution for Phase 2b billing errors (nous_billing).
|
||||
|
||||
The server emits ``portalUrl`` relative by design (``/billing?topup=open``); the
|
||||
client must resolve it against the active portal base so deep-links are clickable
|
||||
on whatever deployment (preview / staging / prod) the user is pointed at.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from hermes_cli.nous_billing import (
|
||||
BillingError,
|
||||
_absolutize_portal_url,
|
||||
_raise_for_error,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def _preview(monkeypatch):
|
||||
monkeypatch.setenv("HERMES_PORTAL_BASE_URL", "https://nas-pr-412.nousresearch.wtf")
|
||||
|
||||
|
||||
def test_absolutize_resolves_relative(_preview):
|
||||
assert (
|
||||
_absolutize_portal_url("/billing?topup=open")
|
||||
== "https://nas-pr-412.nousresearch.wtf/billing?topup=open"
|
||||
)
|
||||
|
||||
|
||||
def test_raise_for_error_attaches_absolute_portal_url(_preview):
|
||||
# The 403 no_payment_method envelope carries a RELATIVE portalUrl; the raised
|
||||
# BillingError must expose it as ABSOLUTE so CLI + TUI render a clickable link.
|
||||
with pytest.raises(BillingError) as exc_info:
|
||||
_raise_for_error(
|
||||
403,
|
||||
{"error": "no_payment_method", "portalUrl": "/billing?topup=open"},
|
||||
)
|
||||
assert (
|
||||
exc_info.value.portal_url
|
||||
== "https://nas-pr-412.nousresearch.wtf/billing?topup=open"
|
||||
)
|
||||
Reference in New Issue
Block a user