@@ -117,7 +117,12 @@ def test_settings_update(self, client: TestClient) -> None:
117117 )
118118
119119 # Update the settings
120- response = client .patch ("/v1/settings" , headers = TEST_HEADERS , json = updated_settings .model_dump ())
120+ response = client .patch (
121+ "/v1/settings" ,
122+ headers = TEST_HEADERS ,
123+ json = updated_settings .model_dump (),
124+ params = {"client" : TEST_CONFIG ["test_client" ]},
125+ )
121126 assert response .status_code == 200
122127 updated = response .json ()
123128
@@ -131,13 +136,45 @@ def test_settings_update(self, client: TestClient) -> None:
131136 assert updated ["rag" ]["top_k" ] == 5
132137 assert updated ["oci" ]["auth_profile" ] == "UPDATED"
133138
139+ def test_settings_copy (self , client : TestClient ) -> None :
140+ """Test copying settings for a client"""
141+ # First get the current settings for the test_client
142+ response = client .get ("/v1/settings" , params = {"client" : TEST_CONFIG ["test_client" ]}, headers = TEST_HEADERS )
143+ assert response .status_code == 200
144+ client_settings = response .json ()
145+
146+ response = client .get ("/v1/settings" , params = {"client" : "server" }, headers = TEST_HEADERS )
147+ assert response .status_code == 200
148+ old_server_settings = response .json ()
149+
150+ # Copy the client settings to the server settings
151+ response = client .patch (
152+ "/v1/settings" ,
153+ headers = TEST_HEADERS ,
154+ json = client_settings ,
155+ params = {"client" : "server" },
156+ )
157+ assert response .status_code == 200
158+ response = client .get ("/v1/settings" , params = {"client" : "server" }, headers = TEST_HEADERS )
159+ new_server_settings = response .json ()
160+ assert old_server_settings != new_server_settings
161+
162+ del new_server_settings ['client' ]
163+ del client_settings ['client' ]
164+ assert new_server_settings == client_settings
165+
134166 def test_settings_update_nonexistent_client (self , client : TestClient ) -> None :
135167 """Test updating settings for a non-existent client"""
136168 headers = TEST_HEADERS .copy ()
137169 headers ["client" ] = "nonexistent_client"
138170
139171 updated_settings = Settings (client = "nonexistent_client" , ll_model = LargeLanguageSettings (model = "test-model" ))
140172
141- response = client .patch ("/v1/settings" , headers = headers , json = updated_settings .model_dump ())
173+ response = client .patch (
174+ "/v1/settings" ,
175+ headers = headers ,
176+ json = updated_settings .model_dump (),
177+ params = {"client" : "nonexistent_client" },
178+ )
142179 assert response .status_code == 404
143180 assert response .json () == {"detail" : "Client: nonexistent_client not found." }
0 commit comments