1212
1313env_varA = { 'color' : "yellow" , 'size' : "large" }
1414env_varB = { 'color' : "red" , 'size' : "small" }
15+ env_varN = { 'dog' : "poodle" , 'season' : "summer" }
1516env_varM = { 'dog' : "corgi" , 'season' : "autumn" }
1617env_varN = { 'dog' : "poodle" , 'season' : "summer" }
18+ env_varS = { 'vehicle' : "scooter" }
1719env_uriX = Uri ("wrap://ens/eth.plugin.one" )
1820env_uriY = Uri ("wrap://ipfs/filecoin.wrapper.two" )
1921
@@ -25,23 +27,49 @@ def test_client_config_builder_set_env():
2527 envs = { env_uriX : env_varA }
2628 ccb = ccb .set_env ( env_varA , env_uriX )
2729 client_config = ccb .build ()
28- assert asdict (client_config ) == asdict (ClientConfig (envs = envs , interfaces = {}, resolver = None , wrappers = []))
30+ assert asdict (client_config ) == asdict (ClientConfig (envs = envs , interfaces = {}, resolver = [] , wrappers = []))
2931
3032def test_client_config_builder_add_env ():
3133 ccb = ClientConfigBuilder () # instantiate new client config builder
3234 ccb = ccb .add_env (env = env_varA , uri = env_uriX ) # add env to client config builder
3335 client_config : ClientConfig = ccb .build () # build a client config object
3436 print (client_config )
35- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = None , wrappers = []))
37+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [] , wrappers = []))
3638
3739def test_client_config_builder_add_env_updates_env_value ():
3840 ccb = ClientConfigBuilder () # instantiate new client config builder
3941 ccb = ccb .add_env (env = env_varA , uri = env_uriX ) # add env to client config builder
4042 client_config : ClientConfig = ccb .build () # build a client config object
41- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = None , wrappers = []))
43+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [] , wrappers = []))
4244 ccb = ccb .add_env (env = env_varB , uri = env_uriX ) # update value of env var on client config builder
4345 client_config : ClientConfig = ccb .build () # build a new client config object
44- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB }, interfaces = {}, resolver = None , wrappers = []))
46+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB }, interfaces = {}, resolver = [], wrappers = []))
47+
48+ def test_client_config_builder_set_env_and_add_env_updates_and_add_values ():
49+ ccb = ClientConfigBuilder ()
50+ ccb = ccb .set_env (env_varA , env_uriX ) # set the environment variables A
51+ client_config : ClientConfig = ccb .build ()
52+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [], wrappers = []))
53+
54+ ccb = ccb .set_env (env_varB , env_uriX ) # set new vars on the same Uri
55+ client_config : ClientConfig = ccb .build ()
56+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB }, interfaces = {}, resolver = [], wrappers = []))
57+
58+ ccb = ccb .add_env (env_varM , env_uriY ) # add new env vars on a new Uri
59+ client_config : ClientConfig = ccb .build ()
60+ assert asdict (client_config ) == asdict (ClientConfig (
61+ envs = {
62+ env_uriX : env_varB ,
63+ env_uriY : env_varM
64+ },
65+ interfaces = {}, resolver = [], wrappers = []))
66+
67+ # add new env vars on the second Uri, while also updating the Env vars of dog and season
68+ ccb = ccb .add_envs ([env_varN , env_varS ], env_uriY )
69+ new_envs = {** env_varM , ** env_varN , ** env_varS }
70+ print (new_envs )
71+ client_config = ccb .build ()
72+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB , env_uriY : new_envs }, interfaces = {}, resolver = [], wrappers = []))
4573
4674# INTERFACES AND IMPLEMENTATIONS
4775
@@ -51,7 +79,7 @@ def test_client_config_builder_adds_interface_implementations():
5179 implementations_uris = [Uri ("wrap://ens/eth.plugin.one" ), Uri ("wrap://ens/eth.plugin.two" )]
5280 ccb = ccb .add_interface_implementations (interfaces_uri , implementations_uris )
5381 client_config = ccb .build ()
54- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {interfaces_uri : implementations_uris }, resolver = None , wrappers = []))
82+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {interfaces_uri : implementations_uris }, resolver = [] , wrappers = []))
5583
5684# WRAPPERS AND PLUGINS
5785
@@ -60,24 +88,24 @@ def test_client_config_builder_add_wrapper():
6088 wrapper = Uri ("wrap://ens/uni.wrapper.eth" )
6189 ccb = ccb .add_wrapper (wrapper )
6290 client_config = ccb .build ()
63- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = None , wrappers = [wrapper ]))
91+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [] , wrappers = [wrapper ]))
6492
6593def test_client_config_builder_adds_multiple_wrappers ():
6694 ccb = ClientConfigBuilder ()
6795 wrappers = [Uri ("wrap://ens/uni.wrapper.eth" ), Uri ("wrap://ens/https.plugin.eth" )]
6896 ccb = ccb .add_wrappers (wrappers )
6997 client_config = ccb .build ()
70- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = None , wrappers = wrappers ))
98+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [] , wrappers = wrappers ))
7199
72100def test_client_config_builder_removes_wrapper ():
73101 ccb = ClientConfigBuilder ()
74102 wrapper = Uri ("wrap://ens/uni.wrapper.eth" )
75103 ccb = ccb .add_wrapper (wrapper )
76104 client_config = ccb .build ()
77- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = None , wrappers = [wrapper ]))
105+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [] , wrappers = [wrapper ]))
78106 ccb = ccb .remove_wrapper (wrapper )
79107 client_config = ccb .build ()
80- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = None , wrappers = []))
108+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [] , wrappers = []))
81109
82110# RESOLVER
83111
@@ -89,4 +117,26 @@ def test_client_config_builder_set_uri_resolver():
89117 ccb = ccb .set_resolver ()
90118 client_config = ccb .build ()
91119 assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = resolver , wrappers = []))
92-
120+
121+ def test_client_config_builder_add_resolver ():
122+
123+ # set a first resolver
124+ ccb = ClientConfigBuilder ()
125+ resolverA = Uri ("wrap://ens/eth.resolver.one" )
126+ ccb : ClientConfigBuilder = ccb .set_resolver (resolverA )
127+ client_config : ClientConfig = ccb .build ()
128+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [resolverA ], wrappers = []))
129+
130+ # add a second resolver
131+ resolverB = Uri ("wrap://ens/eth.resolver.two" )
132+ ccb = ccb .add_resolver (resolverB )
133+ client_config : ClientConfig = ccb .build ()
134+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [resolverA , resolverB ], wrappers = []))
135+
136+ # add a third and fourth resolver
137+ resolverC = Uri ("wrap://ens/eth.resolver.three" )
138+ resolverD = Uri ("wrap://ens/eth.resolver.four" )
139+ ccb = ccb .add_resolvers ([resolverC , resolverD ])
140+ client_config : ClientConfig = ccb .build ()
141+ resolvers = [resolverA , resolverB , resolverC , resolverD ]
142+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = resolvers , wrappers = []))
0 commit comments