2026.03.30 front és garázs logika
This commit is contained in:
108
backend/app/scripts/test_assets_api_directly.py
Normal file
108
backend/app/scripts/test_assets_api_directly.py
Normal file
@@ -0,0 +1,108 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test the assets API endpoint directly.
|
||||
"""
|
||||
import asyncio
|
||||
import aiohttp
|
||||
import sys
|
||||
import os
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
||||
|
||||
async def test_assets_api():
|
||||
base_url = "http://sf_api:8000"
|
||||
|
||||
# First, login to get token
|
||||
async with aiohttp.ClientSession() as session:
|
||||
# Login
|
||||
login_data = {
|
||||
"username": "tester_pro@profibot.hu",
|
||||
"password": "Test123!"
|
||||
}
|
||||
|
||||
print("1. Logging in...")
|
||||
async with session.post(f"{base_url}/api/v1/auth/login", data=login_data) as resp:
|
||||
if resp.status != 200:
|
||||
print(f"❌ Login failed: {resp.status}")
|
||||
text = await resp.text()
|
||||
print(f"Response: {text}")
|
||||
return
|
||||
login_result = await resp.json()
|
||||
token = login_result["access_token"]
|
||||
print(f"✅ Login successful, token: {token[:50]}...")
|
||||
|
||||
# Set personal mode (scope_id = null)
|
||||
print("\n2. Setting personal mode (scope_id = null)...")
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
patch_data = {"organization_id": None}
|
||||
|
||||
async with session.patch(
|
||||
f"{base_url}/api/v1/users/me/active-organization",
|
||||
json=patch_data,
|
||||
headers=headers
|
||||
) as resp:
|
||||
if resp.status != 200:
|
||||
print(f"❌ PATCH failed: {resp.status}")
|
||||
text = await resp.text()
|
||||
print(f"Response: {text}")
|
||||
return
|
||||
patch_result = await resp.json()
|
||||
print(f"✅ PATCH successful")
|
||||
print(f" scope_id: {patch_result.get('scope_id')}")
|
||||
print(f" scope_level: {patch_result.get('scope_level')}")
|
||||
|
||||
# Get vehicles in personal mode
|
||||
print("\n3. Getting vehicles in personal mode...")
|
||||
async with session.get(
|
||||
f"{base_url}/api/v1/assets/vehicles",
|
||||
headers=headers
|
||||
) as resp:
|
||||
if resp.status != 200:
|
||||
print(f"❌ GET vehicles failed: {resp.status}")
|
||||
text = await resp.text()
|
||||
print(f"Response: {text}")
|
||||
return
|
||||
vehicles_result = await resp.json()
|
||||
print(f"✅ GET vehicles successful")
|
||||
print(f" Found {len(vehicles_result)} vehicles")
|
||||
for i, vehicle in enumerate(vehicles_result[:5]): # Show first 5
|
||||
print(f" {i+1}. {vehicle.get('license_plate')} (ID: {vehicle.get('id')})")
|
||||
if len(vehicles_result) > 5:
|
||||
print(f" ... and {len(vehicles_result) - 5} more")
|
||||
|
||||
# Now test corporate mode (org_id = 15)
|
||||
print("\n4. Setting corporate mode (org_id = 15)...")
|
||||
patch_data_corp = {"organization_id": "15"}
|
||||
|
||||
async with session.patch(
|
||||
f"{base_url}/api/v1/users/me/active-organization",
|
||||
json=patch_data_corp,
|
||||
headers=headers
|
||||
) as resp:
|
||||
if resp.status != 200:
|
||||
print(f"❌ PATCH corporate failed: {resp.status}")
|
||||
text = await resp.text()
|
||||
print(f"Response: {text}")
|
||||
return
|
||||
patch_corp_result = await resp.json()
|
||||
print(f"✅ PATCH corporate successful")
|
||||
print(f" scope_id: {patch_corp_result.get('scope_id')}")
|
||||
|
||||
# Get vehicles in corporate mode
|
||||
print("\n5. Getting vehicles in corporate mode...")
|
||||
async with session.get(
|
||||
f"{base_url}/api/v1/assets/vehicles",
|
||||
headers=headers
|
||||
) as resp:
|
||||
if resp.status != 200:
|
||||
print(f"❌ GET corporate vehicles failed: {resp.status}")
|
||||
text = await resp.text()
|
||||
print(f"Response: {text}")
|
||||
return
|
||||
vehicles_corp_result = await resp.json()
|
||||
print(f"✅ GET corporate vehicles successful")
|
||||
print(f" Found {len(vehicles_corp_result)} vehicles")
|
||||
for i, vehicle in enumerate(vehicles_corp_result[:5]):
|
||||
print(f" {i+1}. {vehicle.get('license_plate')}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(test_assets_api())
|
||||
Reference in New Issue
Block a user