Created
May 28, 2025 08:06
-
-
Save filipevarjao/77bdb43ae09255264426f4721d7e6374 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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