| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | import jsonimport pytestfrom flask import url_forfrom models.model import Account# Sample user data for testingsample_user_data = {    'name': 'Test User',    'email': 'test@example.com',    'interface_language': 'en-US',    'interface_theme': 'light',    'timezone': 'America/New_York',    'password': 'testpassword',    'new_password': 'newtestpassword',    'repeat_new_password': 'newtestpassword'}# Create a test user and log them in@pytest.fixture(scope='function')def logged_in_user(client, session):    # Create test user and add them to the database    # Replace this with your actual User model and any required fields    # todo refer to api.controllers.setup.SetupApi.post() to create a user    db_user_data = sample_user_data.copy()    db_user_data['password_salt'] = 'testpasswordsalt'    del db_user_data['new_password']    del db_user_data['repeat_new_password']    test_user = Account(**db_user_data)    session.add(test_user)    session.commit()    # Log in the test user    client.post(url_for('console.loginapi'), data={'email': sample_user_data['email'], 'password': sample_user_data['password']})    return test_userdef test_account_profile(logged_in_user, client):    response = client.get(url_for('console.accountprofileapi'))    assert response.status_code == 200    assert json.loads(response.data)['name'] == sample_user_data['name']def test_account_name(logged_in_user, client):    new_name = 'New Test User'    response = client.post(url_for('console.accountnameapi'), json={'name': new_name})    assert response.status_code == 200    assert json.loads(response.data)['name'] == new_namedef test_account_interface_language(logged_in_user, client):    new_language = 'zh-CN'    response = client.post(url_for('console.accountinterfacelanguageapi'), json={'interface_language': new_language})    assert response.status_code == 200    assert json.loads(response.data)['interface_language'] == new_languagedef test_account_interface_theme(logged_in_user, client):    new_theme = 'dark'    response = client.post(url_for('console.accountinterfacethemeapi'), json={'interface_theme': new_theme})    assert response.status_code == 200    assert json.loads(response.data)['interface_theme'] == new_themedef test_account_timezone(logged_in_user, client):    new_timezone = 'Asia/Shanghai'    response = client.post(url_for('console.accounttimezoneapi'), json={'timezone': new_timezone})    assert response.status_code == 200    assert json.loads(response.data)['timezone'] == new_timezonedef test_account_password(logged_in_user, client):    response = client.post(url_for('console.accountpasswordapi'), json={        'password': sample_user_data['password'],        'new_password': sample_user_data['new_password'],        'repeat_new_password': sample_user_data['repeat_new_password']    })    assert response.status_code == 200    assert json.loads(response.data)['result'] == 'success'
 |