2026.03.29 20:00 Gitea_manager javítás előtt
This commit is contained in:
134
backend/test_catalog_simple.py
Normal file
134
backend/test_catalog_simple.py
Normal file
@@ -0,0 +1,134 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Simple test to verify catalog endpoints work with authentication.
|
||||
"""
|
||||
import http.client
|
||||
import json
|
||||
import urllib.parse
|
||||
|
||||
def test_catalog_with_auth():
|
||||
"""Test catalog endpoints with authentication."""
|
||||
conn = http.client.HTTPConnection("localhost", 8000)
|
||||
|
||||
# Try multiple test users
|
||||
test_users = [
|
||||
("test@profibot.hu", "test123"),
|
||||
("admin@profibot.hu", "Kincs€s74"), # From .env INITIAL_ADMIN_PASSWORD
|
||||
("superadmin@profibot.hu", "Kincs€s74"),
|
||||
]
|
||||
|
||||
access_token = None
|
||||
user_email = None
|
||||
|
||||
for email, password in test_users:
|
||||
print(f"Trying login with {email}...")
|
||||
login_data = urllib.parse.urlencode({
|
||||
"username": email,
|
||||
"password": password
|
||||
})
|
||||
headers = {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
"Accept": "application/json"
|
||||
}
|
||||
|
||||
try:
|
||||
conn.request("POST", "/api/v1/auth/login", login_data, headers)
|
||||
response = conn.getresponse()
|
||||
data = response.read()
|
||||
|
||||
if response.status == 200:
|
||||
token_data = json.loads(data.decode())
|
||||
access_token = token_data.get("access_token")
|
||||
if access_token:
|
||||
user_email = email
|
||||
print(f"Login successful with {email}")
|
||||
break
|
||||
else:
|
||||
print(f"No access token in response for {email}")
|
||||
else:
|
||||
print(f"Login failed for {email}: {response.status} {response.reason}")
|
||||
# Try next user
|
||||
continue
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error during login for {email}: {e}")
|
||||
continue
|
||||
|
||||
if not access_token:
|
||||
print("All login attempts failed")
|
||||
return False
|
||||
|
||||
# Test catalog makes endpoint
|
||||
print(f"\nTesting catalog makes endpoint with {user_email}...")
|
||||
auth_headers = {
|
||||
"Authorization": f"Bearer {access_token}",
|
||||
"Accept": "application/json"
|
||||
}
|
||||
|
||||
try:
|
||||
conn.request("GET", "/api/v1/catalog/makes", headers=auth_headers)
|
||||
response = conn.getresponse()
|
||||
data = response.read()
|
||||
|
||||
if response.status != 200:
|
||||
print(f"Makes endpoint failed: {response.status} {response.reason}")
|
||||
print(f"Response: {data.decode()}")
|
||||
return False
|
||||
|
||||
makes = json.loads(data.decode())
|
||||
print(f"Success! Retrieved {len(makes)} makes")
|
||||
|
||||
# Show all makes
|
||||
print("\nAll makes:")
|
||||
for i, make in enumerate(makes[:20], 1):
|
||||
print(f" {i}. {make}")
|
||||
if len(makes) > 20:
|
||||
print(f" ... and {len(makes) - 20} more")
|
||||
|
||||
# Count normal makes (alphabetic)
|
||||
normal_makes = [m for m in makes if isinstance(m, str) and m.isalpha()]
|
||||
print(f"\nNormal makes (alphabetic): {len(normal_makes)}")
|
||||
|
||||
if len(normal_makes) >= 5:
|
||||
print(f"✓ SUCCESS: Found at least 5 normal makes")
|
||||
print(f"Sample normal makes: {normal_makes[:10]}")
|
||||
|
||||
# Test models endpoint with first normal make
|
||||
if normal_makes:
|
||||
test_make = normal_makes[0]
|
||||
print(f"\nTesting models endpoint for make '{test_make}'...")
|
||||
conn.request("GET", f"/api/v1/catalog/models?make={test_make}", headers=auth_headers)
|
||||
response = conn.getresponse()
|
||||
data = response.read()
|
||||
|
||||
if response.status == 200:
|
||||
models = json.loads(data.decode())
|
||||
print(f"Success! Retrieved {len(models)} models for {test_make}")
|
||||
if models:
|
||||
print(f"Sample models: {models[:5]}")
|
||||
else:
|
||||
print(f"Models endpoint failed: {response.status} {response.reason}")
|
||||
|
||||
return True
|
||||
else:
|
||||
print(f"✗ FAILED: Only found {len(normal_makes)} normal makes (need at least 5)")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error during catalog test: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return False
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("=== Simple Catalog API Test ===\n")
|
||||
success = test_catalog_with_auth()
|
||||
print("\n" + "="*50)
|
||||
if success:
|
||||
print("✓ TEST PASSED: Catalog endpoints working correctly")
|
||||
exit(0)
|
||||
else:
|
||||
print("✗ TEST FAILED")
|
||||
exit(1)
|
||||
Reference in New Issue
Block a user