git / moonbite-network / tests/test_web_retire_mocks.py · raw

"""Retire the fabricated-data mock endpoints on the live site (audit rpcweb).The plural /api/merchants/* invoice mock returned an unspendable payment addressand /api/hardware-wallet/* returned fake signatures, live in production. They arenow retired (410) in live mode, while the REAL singular /api/merchant/* API stayslive. These tests pin both halves."""import web_appdef test_mock_routes_are_retired():    assert web_app._is_retired_api("/api/merchants/create-invoice", "POST")    assert web_app._is_retired_api("/api/merchants/invoice/inv_abc", "GET")    assert web_app._is_retired_api("/api/hardware-wallet/sign", "POST")    assert web_app._is_retired_api("/api/hardware-wallet/address", "POST")    assert web_app._is_retired_api("/api/hardware-wallet/detect", "GET")def test_real_singular_merchant_api_is_not_retired():    # The plural prefix must not catch the real singular endpoints.    assert not web_app._is_retired_api("/api/merchant/invoice", "POST")    assert not web_app._is_retired_api("/api/merchant/invoices", "GET")    assert not web_app._is_retired_api("/api/merchant/invoice/inv_abc/qr.svg", "GET")def test_live_mode_returns_410_for_mock(monkeypatch):    monkeypatch.setattr(web_app, "_merchant_use_rpc", lambda: True)    c = web_app.app.test_client()    assert c.post("/api/merchants/create-invoice", json={}).status_code == 410    assert c.get("/api/hardware-wallet/detect").status_code == 410