test_account_api.py.bak 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import json
  2. import pytest
  3. from flask import url_for
  4. from models.model import Account
  5. # Sample user data for testing
  6. sample_user_data = {
  7. 'name': 'Test User',
  8. 'email': 'test@example.com',
  9. 'interface_language': 'en-US',
  10. 'interface_theme': 'light',
  11. 'timezone': 'America/New_York',
  12. 'password': 'testpassword',
  13. 'new_password': 'newtestpassword',
  14. 'repeat_new_password': 'newtestpassword'
  15. }
  16. # Create a test user and log them in
  17. @pytest.fixture(scope='function')
  18. def logged_in_user(client, session):
  19. # Create test user and add them to the database
  20. # Replace this with your actual User model and any required fields
  21. # todo refer to api.controllers.setup.SetupApi.post() to create a user
  22. db_user_data = sample_user_data.copy()
  23. db_user_data['password_salt'] = 'testpasswordsalt'
  24. del db_user_data['new_password']
  25. del db_user_data['repeat_new_password']
  26. test_user = Account(**db_user_data)
  27. session.add(test_user)
  28. session.commit()
  29. # Log in the test user
  30. client.post(url_for('console.loginapi'), data={'email': sample_user_data['email'], 'password': sample_user_data['password']})
  31. return test_user
  32. def test_account_profile(logged_in_user, client):
  33. response = client.get(url_for('console.accountprofileapi'))
  34. assert response.status_code == 200
  35. assert json.loads(response.data)['name'] == sample_user_data['name']
  36. def test_account_name(logged_in_user, client):
  37. new_name = 'New Test User'
  38. response = client.post(url_for('console.accountnameapi'), json={'name': new_name})
  39. assert response.status_code == 200
  40. assert json.loads(response.data)['name'] == new_name
  41. def test_account_interface_language(logged_in_user, client):
  42. new_language = 'zh-CN'
  43. response = client.post(url_for('console.accountinterfacelanguageapi'), json={'interface_language': new_language})
  44. assert response.status_code == 200
  45. assert json.loads(response.data)['interface_language'] == new_language
  46. def test_account_interface_theme(logged_in_user, client):
  47. new_theme = 'dark'
  48. response = client.post(url_for('console.accountinterfacethemeapi'), json={'interface_theme': new_theme})
  49. assert response.status_code == 200
  50. assert json.loads(response.data)['interface_theme'] == new_theme
  51. def test_account_timezone(logged_in_user, client):
  52. new_timezone = 'Asia/Shanghai'
  53. response = client.post(url_for('console.accounttimezoneapi'), json={'timezone': new_timezone})
  54. assert response.status_code == 200
  55. assert json.loads(response.data)['timezone'] == new_timezone
  56. def test_account_password(logged_in_user, client):
  57. response = client.post(url_for('console.accountpasswordapi'), json={
  58. 'password': sample_user_data['password'],
  59. 'new_password': sample_user_data['new_password'],
  60. 'repeat_new_password': sample_user_data['repeat_new_password']
  61. })
  62. assert response.status_code == 200
  63. assert json.loads(response.data)['result'] == 'success'