""" 测试登录页面配置功能 验证通过配置文件控制登录页面类型(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)