dify/api/tests/test_controllers/test_account_api.py.bak
2023-05-15 08:51:32 +08:00

76 lines
2.9 KiB
Python

import json
import pytest
from flask import url_for
from models.model import Account
# Sample user data for testing
sample_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_user
def 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_name
def 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_language
def 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_theme
def 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_timezone
def 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'