@@ -57,6 +57,60 @@ def test_get_provider_config_returns_empty_dict_on_error(self):
5757 config = LLMProviderFactory ._get_provider_config ("databricks" )
5858 assert config == {}
5959
60+ def test_get_provider_config_active_model_uses_model_key (self ):
61+ """active_model is passed as 'model', not 'model_id', so providers accept it."""
62+ with patch ("chuck_data.config.get_config_manager" ) as mock_config :
63+ mock_config_obj = MagicMock ()
64+ mock_config_obj .llm_provider_config = {}
65+ mock_config_obj .active_model = "databricks-claude-3-7-sonnet"
66+ mock_config .return_value .get_config .return_value = mock_config_obj
67+
68+ config = LLMProviderFactory ._get_provider_config ("databricks" )
69+
70+ assert config .get ("model" ) == "databricks-claude-3-7-sonnet"
71+ assert "model_id" not in config
72+
73+ def test_get_provider_config_active_model_overrides_provider_specific_model (self ):
74+ """active_model overrides any model set in provider-specific config."""
75+ with patch ("chuck_data.config.get_config_manager" ) as mock_config :
76+ mock_config_obj = MagicMock ()
77+ mock_config_obj .llm_provider_config = {"databricks" : {"model" : "old-model" }}
78+ mock_config_obj .active_model = "databricks-claude-3-7-sonnet"
79+ mock_config .return_value .get_config .return_value = mock_config_obj
80+
81+ config = LLMProviderFactory ._get_provider_config ("databricks" )
82+
83+ assert config .get ("model" ) == "databricks-claude-3-7-sonnet"
84+
85+ def test_get_provider_config_no_active_model_returns_provider_config (self ):
86+ """Without active_model, provider-specific config is returned unchanged."""
87+ with patch ("chuck_data.config.get_config_manager" ) as mock_config :
88+ mock_config_obj = MagicMock ()
89+ mock_config_obj .llm_provider_config = {
90+ "databricks" : {"model" : "some-default-model" }
91+ }
92+ mock_config_obj .active_model = None
93+ mock_config .return_value .get_config .return_value = mock_config_obj
94+
95+ config = LLMProviderFactory ._get_provider_config ("databricks" )
96+
97+ assert config .get ("model" ) == "some-default-model"
98+
99+ def test_create_databricks_provider_with_active_model (self ):
100+ """Factory creates DatabricksProvider with active_model passed as 'model'."""
101+ with patch ("chuck_data.config.get_config_manager" ) as mock_config :
102+ mock_config_obj = MagicMock ()
103+ mock_config_obj .llm_provider_config = {}
104+ mock_config_obj .active_model = "databricks-claude-3-7-sonnet"
105+ mock_config .return_value .get_config .return_value = mock_config_obj
106+
107+ from chuck_data .llm .providers .databricks import DatabricksProvider
108+
109+ provider = LLMProviderFactory .create ("databricks" )
110+
111+ assert isinstance (provider , DatabricksProvider )
112+ assert provider .default_model == "databricks-claude-3-7-sonnet"
113+
60114 @patch ("chuck_data.llm.providers.aws_bedrock.boto3" )
61115 def test_create_aws_bedrock_provider (self , mock_boto3 ):
62116 """Factory can create AWS Bedrock provider."""
0 commit comments