test_user_menus.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env python3
  2. import requests
  3. import json
  4. # First login to get token
  5. login_data = {
  6. 'username': 'admin',
  7. 'password': 'Admin123456'
  8. }
  9. try:
  10. # Login
  11. login_response = requests.post('http://localhost:8000/api/v1/auth/login', json=login_data)
  12. if login_response.status_code == 200:
  13. login_result = login_response.json()
  14. if login_result.get('code') == 0:
  15. token = login_result['data']['access_token']
  16. print('✅ Login successful')
  17. # Get user menus
  18. headers = {'Authorization': f'Bearer {token}'}
  19. menus_response = requests.get('http://localhost:8000/api/v1/user/menus', headers=headers)
  20. if menus_response.status_code == 200:
  21. menus_result = menus_response.json()
  22. if menus_result.get('code') == 0:
  23. menus = menus_result['data']
  24. print(f'✅ Got {len(menus)} total items for admin user')
  25. # Count menu types
  26. menu_count = 0
  27. for menu in menus:
  28. if menu.get('menu_type') == 'menu':
  29. menu_count += 1
  30. print(f'📁 Menu: {menu["title"]} ({menu["name"]})')
  31. if menu.get('children'):
  32. for child in menu['children']:
  33. if child.get('menu_type') == 'menu':
  34. menu_count += 1
  35. print(f' 📄 {child["title"]} ({child["name"]})')
  36. print(f'📊 Total menu items (type=menu): {menu_count}')
  37. else:
  38. print(f'❌ Menu API error: {menus_result.get("message")}')
  39. else:
  40. print(f'❌ Menu API HTTP error: {menus_response.status_code}')
  41. else:
  42. print(f'❌ Login error: {login_result.get("message")}')
  43. else:
  44. print(f'❌ Login HTTP error: {login_response.status_code}')
  45. except Exception as e:
  46. print(f'❌ Request error: {e}')