@@ -187,6 +187,81 @@ def test_client_config_builder_add_resolver():
187187 resolvers : List [UriResolverLike ] = [resolverA , resolverB , resolverC , resolverD ]
188188 assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = resolvers , wrappers = [], packages = [], redirects = {}))
189189
190+ # REDIRECTS
191+
192+ def test_client_config_builder_sets_uri_redirects (env_uriX , env_uriY , env_uriZ ):
193+ # set a first redirect
194+ ccb = ClientConfigBuilder ()
195+ ccb = ccb .set_uri_redirect (env_uriX , env_uriY )
196+ client_config : ClientConfig = ccb .build ()
197+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [],
198+ redirects = {env_uriX : env_uriY }))
199+
200+ # add a second redirect
201+ ccb = ccb .set_uri_redirect (env_uriY , env_uriZ )
202+ client_config : ClientConfig = ccb .build ()
203+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [],
204+ redirects = {env_uriX : env_uriY , env_uriY : env_uriZ }))
205+
206+ # update the first redirect
207+ ccb .set_uri_redirect (env_uriX , env_uriZ )
208+ client_config : ClientConfig = ccb .build ()
209+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [],
210+ redirects = {env_uriX : env_uriZ , env_uriY : env_uriZ }))
211+
212+ def test_client_config_builder_removes_uri_redirects (env_uriX , env_uriY , env_uriZ ):
213+ ccb = ClientConfigBuilder ()
214+ ccb = ccb .set_uri_redirect (env_uriX , env_uriY )
215+ ccb = ccb .set_uri_redirect (env_uriY , env_uriZ )
216+ client_config : ClientConfig = ccb .build ()
217+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [],
218+ redirects = {env_uriX : env_uriY , env_uriY : env_uriZ }))
219+
220+ ccb = ccb .remove_uri_redirect (env_uriX )
221+ client_config : ClientConfig = ccb .build ()
222+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [],
223+ redirects = {env_uriY : env_uriZ }))
224+
225+
226+
227+ def test_client_config_builder_sets_many_uri_redirects (env_uriX ,env_uriY , env_uriZ ):
228+
229+ # set a first redirect
230+ ccb = ClientConfigBuilder ()
231+ ccb = ccb .set_uri_redirects ([{
232+ env_uriX : env_uriY ,
233+ }] )
234+ client_config : ClientConfig = ccb .build ()
235+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [], redirects = {env_uriX : env_uriY }))
236+
237+ # updates that first redirect to a new value
238+ ccb = ccb .set_uri_redirects ([{
239+ env_uriX : env_uriZ ,
240+ }] )
241+ client_config : ClientConfig = ccb .build ()
242+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [], redirects = {env_uriX : env_uriZ }))
243+
244+ # add a second redirect
245+ ccb = ccb .set_uri_redirects ([{
246+ env_uriY : env_uriX ,
247+ }] )
248+ client_config : ClientConfig = ccb .build ()
249+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [], redirects = {env_uriX : env_uriZ , env_uriY : env_uriX }))
250+
251+ # add a third redirect and update the first redirect
252+ ccb = ccb .set_uri_redirects ([{
253+ env_uriX : env_uriY ,
254+ env_uriZ : env_uriY ,
255+ }] )
256+ client_config : ClientConfig = ccb .build ()
257+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [],
258+ redirects = {
259+ env_uriX : env_uriY ,
260+ env_uriY : env_uriX ,
261+ env_uriZ : env_uriY
262+ }))
263+
264+
190265# GENERIC ADD FUNCTION
191266
192267def test_client_config_builder_generic_add (env_varA ,env_uriX , env_uriY ):
0 commit comments