Add subcription feature 3
This commit is contained in:
62
gateway/test_routing_behavior.py
Normal file
62
gateway/test_routing_behavior.py
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test script to understand FastAPI routing behavior with different prefix configurations.
|
||||
"""
|
||||
|
||||
from fastapi import FastAPI, APIRouter, Request
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
# Test 1: Router with prefix="" and full path in route
|
||||
router1 = APIRouter()
|
||||
|
||||
@router1.post("/api/v1/webhooks/stripe")
|
||||
async def webhook_stripe_v1(request: Request):
|
||||
return {"message": "webhook_stripe_v1"}
|
||||
|
||||
# Test 2: Router with prefix="" and relative path in route
|
||||
router2 = APIRouter()
|
||||
|
||||
@router2.post("/webhooks/stripe")
|
||||
async def webhook_stripe_v2(request: Request):
|
||||
return {"message": "webhook_stripe_v2"}
|
||||
|
||||
# Test 3: Router with prefix="/api/v1" and relative path in route
|
||||
router3 = APIRouter()
|
||||
|
||||
@router3.post("/webhooks/stripe")
|
||||
async def webhook_stripe_v3(request: Request):
|
||||
return {"message": "webhook_stripe_v3"}
|
||||
|
||||
# Create test apps
|
||||
app1 = FastAPI()
|
||||
app1.include_router(router1, prefix="")
|
||||
|
||||
app2 = FastAPI()
|
||||
app2.include_router(router2, prefix="")
|
||||
|
||||
app3 = FastAPI()
|
||||
app3.include_router(router3, prefix="/api/v1")
|
||||
|
||||
print("Testing routing behavior...")
|
||||
print()
|
||||
|
||||
# Test each configuration
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
client1 = TestClient(app1)
|
||||
response1 = client1.post("/api/v1/webhooks/stripe")
|
||||
print(f"Test 1 (prefix='', full path): {response1.status_code} - {response1.json() if response1.status_code == 200 else 'Not found'}")
|
||||
|
||||
client2 = TestClient(app2)
|
||||
response2 = client2.post("/api/v1/webhooks/stripe")
|
||||
print(f"Test 2 (prefix='', relative path): {response2.status_code} - {response2.json() if response2.status_code == 200 else 'Not found'}")
|
||||
|
||||
client3 = TestClient(app3)
|
||||
response3 = client3.post("/api/v1/webhooks/stripe")
|
||||
print(f"Test 3 (prefix='/api/v1', relative path): {response3.status_code} - {response3.json() if response3.status_code == 200 else 'Not found'}")
|
||||
|
||||
print()
|
||||
print("Analysis:")
|
||||
print("- Test 1 should work: prefix='' + full path '/api/v1/webhooks/stripe' = '/api/v1/webhooks/stripe'")
|
||||
print("- Test 2 should NOT work: prefix='' + relative path '/webhooks/stripe' = '/webhooks/stripe' (not '/api/v1/webhooks/stripe')")
|
||||
print("- Test 3 should work: prefix='/api/v1' + relative path '/webhooks/stripe' = '/api/v1/webhooks/stripe'")
|
||||
Reference in New Issue
Block a user