teszt állományok áthelyezése és szelektálása
This commit is contained in:
143
tests/archive/create_business_via_api.py.old
Normal file
143
tests/archive/create_business_via_api.py.old
Normal file
@@ -0,0 +1,143 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Create a business organization for User 55 using the official API endpoint.
|
||||
"""
|
||||
import sys
|
||||
import asyncio
|
||||
import httpx
|
||||
import json
|
||||
|
||||
sys.path.append('/app/backend')
|
||||
|
||||
from app.db.session import AsyncSessionLocal
|
||||
from sqlalchemy import select
|
||||
from app.models.identity import User
|
||||
from app.core.security import create_tokens
|
||||
|
||||
async def get_auth_token():
|
||||
"""Get authentication token for User 55"""
|
||||
async with AsyncSessionLocal() as db:
|
||||
result = await db.execute(select(User).where(User.id == 55))
|
||||
user = result.scalar_one_or_none()
|
||||
if user:
|
||||
access_token, _ = create_tokens(data={'sub': str(user.id)})
|
||||
return access_token
|
||||
else:
|
||||
raise Exception("User 55 not found")
|
||||
|
||||
async def create_business_organization():
|
||||
"""Create business organization via API"""
|
||||
# Get auth token
|
||||
token = await get_auth_token()
|
||||
print(f"Auth token obtained for User 55")
|
||||
|
||||
# Prepare API request
|
||||
headers = {
|
||||
"Authorization": f"Bearer {token}",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
payload = {
|
||||
"full_name": "Test-Robot Kft.",
|
||||
"name": "Test-Robot Kft.",
|
||||
"display_name": "Test-Robot",
|
||||
"tax_number": "12345678-1-12",
|
||||
"reg_number": "01-09-123456",
|
||||
"country_code": "HU",
|
||||
"language": "hu",
|
||||
"default_currency": "HUF",
|
||||
# Atomic address fields
|
||||
"address_zip": "1132",
|
||||
"address_city": "Budapest",
|
||||
"address_street_name": "Váci",
|
||||
"address_street_type": "út",
|
||||
"address_house_number": "47",
|
||||
"address_stairwell": "A",
|
||||
"address_floor": "1",
|
||||
"address_door": "1",
|
||||
"address_hrsz": None,
|
||||
"contacts": [
|
||||
{
|
||||
"full_name": "Test User",
|
||||
"email": "test_fallback@profibot.hu",
|
||||
"phone": "+36301234567",
|
||||
"contact_type": "primary"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
# Make API call
|
||||
async with httpx.AsyncClient(base_url="http://sf_api:8000", timeout=30.0) as client:
|
||||
try:
|
||||
print("Sending POST request to /api/v1/organizations/onboard...")
|
||||
response = await client.post(
|
||||
"/api/v1/organizations/onboard",
|
||||
json=payload,
|
||||
headers=headers
|
||||
)
|
||||
|
||||
print(f"Response status: {response.status_code}")
|
||||
print(f"Response body: {response.text}")
|
||||
|
||||
if response.status_code in (200, 201):
|
||||
result = response.json()
|
||||
print(f"\n✅ Business organization created successfully!")
|
||||
print(f"Organization ID: {result.get('organization_id')}")
|
||||
print(f"Status: {result.get('status')}")
|
||||
return result.get('organization_id')
|
||||
else:
|
||||
print(f"\n❌ Failed to create organization")
|
||||
return None
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error making API request: {e}")
|
||||
return None
|
||||
|
||||
async def verify_organizations():
|
||||
"""Verify User 55's organizations"""
|
||||
async with AsyncSessionLocal() as db:
|
||||
from sqlalchemy import text
|
||||
|
||||
print("\n=== VERIFYING ORGANIZATIONS FOR USER 55 ===")
|
||||
|
||||
# Get all organizations for User 55
|
||||
result = await db.execute(text('''
|
||||
SELECT o.id, o.full_name, o.org_type, o.tax_number, o.status, om.role
|
||||
FROM fleet.organizations o
|
||||
JOIN fleet.organization_members om ON o.id = om.organization_id
|
||||
WHERE om.user_id = 55
|
||||
ORDER BY o.org_type
|
||||
'''))
|
||||
orgs = result.fetchall()
|
||||
|
||||
print(f"User 55 has access to {len(orgs)} organizations:")
|
||||
|
||||
for org in orgs:
|
||||
org_dict = dict(org._mapping)
|
||||
print(f" - {org_dict['full_name']} (ID: {org_dict['id']}, Type: {org_dict['org_type']}, Tax: {org_dict['tax_number']}, Role: {org_dict['role']})")
|
||||
|
||||
# Check branches
|
||||
from app.models.marketplace import Branch
|
||||
from sqlalchemy import select
|
||||
|
||||
for org in orgs:
|
||||
org_id = dict(org._mapping)['id']
|
||||
branch_result = await db.execute(
|
||||
select(Branch).where(Branch.organization_id == org_id)
|
||||
)
|
||||
branches = branch_result.scalars().all()
|
||||
print(f" Branches for org {org_id}: {len(branches)}")
|
||||
for branch in branches:
|
||||
print(f" - {branch.name} (Main: {branch.is_main})")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("=== CREATING BUSINESS ORGANIZATION VIA API ===")
|
||||
|
||||
# Run the async functions
|
||||
org_id = asyncio.run(create_business_organization())
|
||||
|
||||
if org_id:
|
||||
print(f"\n✅ Business organization created with ID: {org_id}")
|
||||
asyncio.run(verify_organizations())
|
||||
else:
|
||||
print("\n❌ Failed to create business organization")
|
||||
Reference in New Issue
Block a user