| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- import os
 - import pytest
 - from models.model import Account, Tenant, TenantAccountJoin
 - 
 - 
 - def test_setup_api_get(test_client,db_session):
 -     response = test_client.get("/setup")
 -     assert response.status_code == 200
 -     assert response.json == {"step": "not_start"}
 - 
 -     # create a tenant and check again
 -     tenant = Tenant(name="Test Tenant", status="normal")
 -     db_session.add(tenant)
 -     db_session.commit()
 -     response = test_client.get("/setup")
 -     assert response.status_code == 200
 -     assert response.json == {"step": "step2"}
 - 
 -     # create setup file and check again
 -     response = test_client.get("/setup")
 -     assert response.status_code == 200
 -     assert response.json == {"step": "finished"}
 - 
 - 
 - def test_setup_api_post(test_client):
 -     response = test_client.post("/setup", json={
 -         "email": "test@test.com",
 -         "name": "Test User",
 -         "password": "Abc123456"
 -     })
 -     assert response.status_code == 200
 -     assert response.json == {"result": "success", "next_step": "step2"}
 - 
 -     # check if the tenant, account, and tenant account join records were created
 -     tenant = Tenant.query.first()
 -     assert tenant.name == "Test User's LLM Factory"
 -     assert tenant.status == "normal"
 -     assert tenant.encrypt_public_key
 - 
 -     account = Account.query.first()
 -     assert account.email == "test@test.com"
 -     assert account.name == "Test User"
 -     assert account.password_salt
 -     assert account.password
 -     assert TenantAccountJoin.query.filter_by(account_id=account.id, is_tenant_owner=True).count() == 1
 - 
 -     # check if password is encrypted correctly
 -     salt = account.password_salt.encode()
 -     password_hashed = account.password.encode()
 -     assert account.password == base64.b64encode(hash_password("Abc123456", salt)).decode()
 - 
 - 
 - def test_setup_step2_api_post(test_client,db_session):
 -     # create a tenant, account, and setup file
 -     tenant = Tenant(name="Test Tenant", status="normal")
 -     account = Account(email="test@test.com", name="Test User")
 -     db_session.add_all([tenant, account])
 -     db_session.commit()
 - 
 -     # try to set up with incorrect language
 -     response = test_client.post("/setup/step2", json={
 -         "interface_language": "invalid_language",
 -         "timezone": "Asia/Shanghai"
 -     })
 -     assert response.status_code == 400
 - 
 -     # set up successfully
 -     response = test_client.post("/setup/step2", json={
 -         "interface_language": "en",
 -         "timezone": "Asia/Shanghai"
 -     })
 -     assert response.status_code == 200
 -     assert response.json == {"result": "success", "next_step": "finished"}
 - 
 -     # check if account was updated correctly
 -     account = Account.query.first()
 -     assert account.interface_language == "en"
 -     assert account.timezone == "Asia/Shanghai"
 -     assert account.interface_theme == "light"
 -     assert account.last_login_ip == "127.0.0.1"
 
 
  |