import pytest from config.settings import load_settings def test_load_settings_success(): """测试成功加载配置文件""" settings = load_settings("tests/fixtures/test_config.yaml") assert settings.database.active == "sql_server" assert settings.database.sql_server.port == 1433 assert settings.database.sql_server.host == "localhost" assert settings.database.sql_server.database == "TestDB" def test_load_settings_file_not_found(): """测试配置文件不存在时抛出异常""" with pytest.raises(FileNotFoundError): load_settings("nonexistent.yaml") def test_database_url_property(): """测试 database_url 属性生成""" settings = load_settings("tests/fixtures/test_config.yaml") url = settings.database_url assert "mssql+pyodbc" in str(url) assert "test_user" in str(url) assert "TestDB" in str(url) def test_postgresql_database_url_property(): """测试 PostgreSQL database_url 属性生成""" settings = load_settings("tests/fixtures/test_config.yaml") settings.database.active = "postgresql" url = settings.database_url assert url.drivername == "postgresql+psycopg" assert url.host == "localhost" assert url.port == 5432 assert url.database == "TestDB"