Skip to content

Instantly share code, notes, and snippets.

@filipevarjao
Created May 28, 2025 08:06
Show Gist options
  • Save filipevarjao/77bdb43ae09255264426f4721d7e6374 to your computer and use it in GitHub Desktop.
Save filipevarjao/77bdb43ae09255264426f4721d7e6374 to your computer and use it in GitHub Desktop.
import requests
import json
import sys
def print_response(response):
print(f"Status: {response.status_code}")
try:
print(json.dumps(response.json(), indent=2))
except Exception:
print(response.text)
def test_all(port):
base_url = f"https://localhost:{port}"
cert = "client.crt" # substitua pelo caminho real do certificado do cliente
key = "client.key"
ca_cert = "ca.crt"
session = requests.Session()
session.cert = (cert, key)
session.verify = ca_cert
print("\n### LOGIN ###")
r = session.post(f"{base_url}/login", json={"name": "Alice", "is_manager": False})
print_response(r)
user_id = r.json().get("id")
print("\n### LOGIN (Manager) ###")
r = session.post(f"{base_url}/login", json={"name": "Gestor", "is_manager": True})
print_response(r)
manager_id = r.json().get("id")
print("\n### ADD ASSET (POST /asset) ###")
asset_data = {
"symbol": "BTC",
"name": "Bitcoin",
"price": 30000.0,
"available": 10,
"manager_id": manager_id
}
r = session.post(f"{base_url}/asset", json=asset_data)
print_response(r)
print("\n### GET ASSET (GET /asset?symbol=BTC) ###")
r = session.get(f"{base_url}/asset", params={"symbol": "BTC"})
print_response(r)
print("\n### TRANSACTIONS (POST /transaction) ###")
tx_data = {
"start": "2024-01-01T00:00:00",
"end": "2025-12-31T23:59:59",
"manager_id": manager_id
}
r = session.post(f"{base_url}/transaction", json=tx_data)
print_response(r)
print("\n### GET USER INFO (GET /user?id=...) ###")
r = session.get(f"{base_url}/user", params={"id": user_id})
print_response(r)
print("\n### DEPOSIT (POST /deposit) ###")
r = session.post(f"{base_url}/deposit", json={"id": user_id, "amount": 1000})
print_response(r)
print("\n### BUY ASSET (POST /buy) ###")
r = session.post(f"{base_url}/buy", json={"id": user_id, "symbol": "BTC", "quantity": 0.01})
print_response(r)
print("\n### SELL ASSET (POST /sell) ###")
r = session.post(f"{base_url}/sell", json={"id": user_id, "symbol": "BTC", "quantity": 0.005})
print_response(r)
print("\n### WITHDRAW (POST /withdraw) ###")
r = session.post(f"{base_url}/withdraw", json={"id": user_id, "amount": 100})
print_response(r)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python test_coincenter_api.py <PORT>")
sys.exit(1)
test_all(sys.argv[1])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment