107 lines
3.4 KiB
Python
107 lines
3.4 KiB
Python
"""
|
||
测试登录页面配置功能
|
||
验证通过配置文件控制登录页面类型(creator vs home)
|
||
"""
|
||
import sys
|
||
from config import load_config
|
||
|
||
def test_config_reading():
|
||
"""测试配置读取"""
|
||
print("="*60)
|
||
print("测试配置文件读取")
|
||
print("="*60)
|
||
|
||
# 测试dev配置
|
||
print("\n1. 测试开发环境配置 (config.dev.yaml)")
|
||
config_dev = load_config('dev')
|
||
login_page = config_dev.get_str('login.page', 'creator')
|
||
login_headless = config_dev.get_bool('login.headless', False)
|
||
|
||
print(f" login.page = {login_page}")
|
||
print(f" login.headless = {login_headless}")
|
||
|
||
# 根据配置决定预热URL
|
||
if login_page == "home":
|
||
preheat_url = "https://www.xiaohongshu.com"
|
||
else:
|
||
preheat_url = "https://creator.xiaohongshu.com/login"
|
||
|
||
print(f" 预热URL = {preheat_url}")
|
||
|
||
# 测试prod配置
|
||
print("\n2. 测试生产环境配置 (config.prod.yaml)")
|
||
config_prod = load_config('prod')
|
||
login_page_prod = config_prod.get_str('login.page', 'creator')
|
||
login_headless_prod = config_prod.get_bool('login.headless', False)
|
||
|
||
print(f" login.page = {login_page_prod}")
|
||
print(f" login.headless = {login_headless_prod}")
|
||
|
||
if login_page_prod == "home":
|
||
preheat_url_prod = "https://www.xiaohongshu.com"
|
||
else:
|
||
preheat_url_prod = "https://creator.xiaohongshu.com/login"
|
||
|
||
print(f" 预热URL = {preheat_url_prod}")
|
||
|
||
print("\n" + "="*60)
|
||
print("✅ 配置读取测试完成")
|
||
print("="*60)
|
||
|
||
|
||
def test_api_parameter_override():
|
||
"""测试API参数覆盖配置"""
|
||
print("\n" + "="*60)
|
||
print("测试API参数覆盖配置")
|
||
print("="*60)
|
||
|
||
config = load_config('dev')
|
||
default_login_page = config.get_str('login.page', 'creator')
|
||
|
||
# 模拟不同的API参数情况
|
||
test_cases = [
|
||
(None, "应使用配置默认值"),
|
||
("creator", "API指定creator"),
|
||
("home", "API指定home"),
|
||
]
|
||
|
||
for api_param, description in test_cases:
|
||
login_page = api_param if api_param else default_login_page
|
||
print(f"\n场景: {description}")
|
||
print(f" 配置默认值 = {default_login_page}")
|
||
print(f" API参数 = {api_param}")
|
||
print(f" 最终使用 = {login_page}")
|
||
|
||
# 决定URL
|
||
if login_page == "home":
|
||
url = "https://www.xiaohongshu.com"
|
||
page_name = "小红书首页"
|
||
else:
|
||
url = "https://creator.xiaohongshu.com/login"
|
||
page_name = "创作者中心"
|
||
|
||
print(f" → 将访问: {page_name} ({url})")
|
||
|
||
print("\n" + "="*60)
|
||
print("✅ API参数覆盖测试完成")
|
||
print("="*60)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
try:
|
||
test_config_reading()
|
||
test_api_parameter_override()
|
||
|
||
print("\n🎉 所有测试通过!")
|
||
print("\n使用说明:")
|
||
print("1. 在 config.dev.yaml 或 config.prod.yaml 中修改 login.page 配置")
|
||
print("2. 可选值: creator (创作者中心) 或 home (小红书首页)")
|
||
print("3. API请求中的 login_page 参数可以覆盖配置文件的默认值")
|
||
print("4. 如果API请求不传 login_page 参数,将使用配置文件中的默认值")
|
||
|
||
except Exception as e:
|
||
print(f"\n❌ 测试失败: {str(e)}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
sys.exit(1)
|