11from typing import List , Any , Dict , Union
22from polywrap_core import Env
33from polywrap_core import Uri
4- from polywrap_core import IUriResolver
4+ from polywrap_core import IUriResolver , UriPackage , UriWrapper
55from polywrap_client_config_builder import ClientConfigBuilder
66import pytest
77from pytest import fixture
@@ -27,33 +27,33 @@ def test_client_config_builder_set_env():
2727 envs = { env_uriX : env_varA }
2828 ccb = ccb .set_env ( env_varA , env_uriX )
2929 client_config = ccb .build ()
30- assert asdict (client_config ) == asdict (ClientConfig (envs = envs , interfaces = {}, resolver = [], wrappers = []))
30+ assert asdict (client_config ) == asdict (ClientConfig (envs = envs , interfaces = {}, resolver = [], wrappers = [], packages = [] ))
3131
3232def test_client_config_builder_add_env ():
3333 ccb = ClientConfigBuilder () # instantiate new client config builder
3434 ccb = ccb .add_env (env = env_varA , uri = env_uriX ) # add env to client config builder
3535 client_config : ClientConfig = ccb .build () # build a client config object
3636 print (client_config )
37- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [], wrappers = []))
37+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [], wrappers = [], packages = [] ))
3838
3939def test_client_config_builder_add_env_updates_env_value ():
4040 ccb = ClientConfigBuilder () # instantiate new client config builder
4141 ccb = ccb .add_env (env = env_varA , uri = env_uriX ) # add env to client config builder
4242 client_config : ClientConfig = ccb .build () # build a client config object
43- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [], wrappers = []))
43+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [], wrappers = [], packages = [] ))
4444 ccb = ccb .add_env (env = env_varB , uri = env_uriX ) # update value of env var on client config builder
4545 client_config : ClientConfig = ccb .build () # build a new client config object
46- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB }, interfaces = {}, resolver = [], wrappers = []))
46+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB }, interfaces = {}, resolver = [], wrappers = [], packages = [] ))
4747
4848def test_client_config_builder_set_env_and_add_env_updates_and_add_values ():
4949 ccb = ClientConfigBuilder ()
5050 ccb = ccb .set_env (env_varA , env_uriX ) # set the environment variables A
5151 client_config : ClientConfig = ccb .build ()
52- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [], wrappers = []))
52+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varA }, interfaces = {}, resolver = [], wrappers = [], packages = [] ))
5353
5454 ccb = ccb .set_env (env_varB , env_uriX ) # set new vars on the same Uri
5555 client_config : ClientConfig = ccb .build ()
56- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB }, interfaces = {}, resolver = [], wrappers = []))
56+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB }, interfaces = {}, resolver = [], wrappers = [], packages = [] ))
5757
5858 ccb = ccb .add_env (env_varM , env_uriY ) # add new env vars on a new Uri
5959 client_config : ClientConfig = ccb .build ()
@@ -62,14 +62,14 @@ def test_client_config_builder_set_env_and_add_env_updates_and_add_values():
6262 env_uriX : env_varB ,
6363 env_uriY : env_varM
6464 },
65- interfaces = {}, resolver = [], wrappers = []))
65+ interfaces = {}, resolver = [], wrappers = [], packages = [] ))
6666
6767 # add new env vars on the second Uri, while also updating the Env vars of dog and season
6868 ccb = ccb .add_envs ([env_varN , env_varS ], env_uriY )
6969 new_envs = {** env_varM , ** env_varN , ** env_varS }
7070 print (new_envs )
7171 client_config = ccb .build ()
72- assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB , env_uriY : new_envs }, interfaces = {}, resolver = [], wrappers = []))
72+ assert asdict (client_config ) == asdict (ClientConfig (envs = {env_uriX : env_varB , env_uriY : new_envs }, interfaces = {}, resolver = [], wrappers = [], packages = [] ))
7373
7474# INTERFACES AND IMPLEMENTATIONS
7575
@@ -79,7 +79,58 @@ def test_client_config_builder_adds_interface_implementations():
7979 implementations_uris = [Uri ("wrap://ens/eth.plugin.one" ), Uri ("wrap://ens/eth.plugin.two" )]
8080 ccb = ccb .add_interface_implementations (interfaces_uri , implementations_uris )
8181 client_config = ccb .build ()
82- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {interfaces_uri : implementations_uris }, resolver = [], wrappers = []))
82+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {interfaces_uri : implementations_uris }, resolver = [], wrappers = [], packages = []))
83+
84+ # PACKAGES
85+
86+ @pytest .mark .skip ("Should implement UriPackage interface with package argument" )
87+ def test_client_config_builder_set_package ():
88+ ccb = ClientConfigBuilder ()
89+ package = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ), version = "1.0.0" )
90+ ccb = ccb .set_package (package )
91+ client_config = ccb .build ()
92+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [package ]))
93+
94+ @pytest .mark .skip ("Should implement UriPackage interface with package argument" )
95+ def test_client_config_builder_add_package ():
96+ ccb = ClientConfigBuilder ()
97+ package = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ))
98+ ccb = ccb .add_package (package )
99+ client_config = ccb .build ()
100+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [package ]))
101+
102+ @pytest .mark .skip ("Should implement UriPackage interface with package argument" )
103+ def test_client_config_builder_add_package_updates_package ():
104+ ccb = ClientConfigBuilder ()
105+ package = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ))
106+ ccb = ccb .add_package (package )
107+ client_config = ccb .build ()
108+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [package ]))
109+ package = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ))
110+ ccb = ccb .add_package (package )
111+ client_config = ccb .build ()
112+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [package ]))
113+
114+ @pytest .mark .skip ("Should implement UriPackage interface with package argument" )
115+ def test_client_config_builder_add_packages ():
116+ ccb = ClientConfigBuilder ()
117+ package = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ))
118+ package2 = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ))
119+ ccb = ccb .add_packages ([package , package2 ])
120+ client_config = ccb .build ()
121+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [package , package2 ]))
122+
123+ @pytest .mark .skip ("Should implement UriPackage interface with package argument" )
124+ def test_client_config_builder_add_packages_removes_packages ():
125+ ccb = ClientConfigBuilder ()
126+ package = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ))
127+ package2 = UriPackage (Uri ("wrap://ens/uni.wrapper.eth" ))
128+ ccb = ccb .add_packages ([package , package2 ])
129+ client_config = ccb .build ()
130+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [package , package2 ]))
131+ ccb = ccb .remove_package ([package1 ])
132+ client_config = ccb .build ()
133+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [package2 ]))
83134
84135# WRAPPERS AND PLUGINS
85136
@@ -88,24 +139,24 @@ def test_client_config_builder_add_wrapper():
88139 wrapper = Uri ("wrap://ens/uni.wrapper.eth" )
89140 ccb = ccb .add_wrapper (wrapper )
90141 client_config = ccb .build ()
91- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [wrapper ]))
142+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [wrapper ], packages = [] ))
92143
93144def test_client_config_builder_adds_multiple_wrappers ():
94145 ccb = ClientConfigBuilder ()
95146 wrappers = [Uri ("wrap://ens/uni.wrapper.eth" ), Uri ("wrap://ens/https.plugin.eth" )]
96147 ccb = ccb .add_wrappers (wrappers )
97148 client_config = ccb .build ()
98- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = wrappers ))
149+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = wrappers , packages = [] ))
99150
100151def test_client_config_builder_removes_wrapper ():
101152 ccb = ClientConfigBuilder ()
102153 wrapper = Uri ("wrap://ens/uni.wrapper.eth" )
103154 ccb = ccb .add_wrapper (wrapper )
104155 client_config = ccb .build ()
105- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [wrapper ]))
156+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [wrapper ], packages = [] ))
106157 ccb = ccb .remove_wrapper (wrapper )
107158 client_config = ccb .build ()
108- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = []))
159+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [], wrappers = [], packages = [] ))
109160
110161# RESOLVER
111162
@@ -114,9 +165,9 @@ def test_client_config_builder_set_uri_resolver():
114165 ccb = ClientConfigBuilder ()
115166 resolver = IUriResolver ()
116167 Uri ("wrap://ens/eth.resolver.one" )
117- ccb = ccb .set_resolver ()
168+ ccb = ccb .set_resolver (resolver )
118169 client_config = ccb .build ()
119- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = resolver , wrappers = []))
170+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [ resolver ] , wrappers = [], packages = []))
120171
121172def test_client_config_builder_add_resolver ():
122173
@@ -125,18 +176,24 @@ def test_client_config_builder_add_resolver():
125176 resolverA = Uri ("wrap://ens/eth.resolver.one" )
126177 ccb : ClientConfigBuilder = ccb .set_resolver (resolverA )
127178 client_config : ClientConfig = ccb .build ()
128- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [resolverA ], wrappers = []))
179+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [resolverA ], wrappers = [], packages = [] ))
129180
130181 # add a second resolver
131182 resolverB = Uri ("wrap://ens/eth.resolver.two" )
132183 ccb = ccb .add_resolver (resolverB )
133184 client_config : ClientConfig = ccb .build ()
134- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [resolverA , resolverB ], wrappers = []))
185+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = [resolverA , resolverB ], wrappers = [], packages = [] ))
135186
136187 # add a third and fourth resolver
137188 resolverC = Uri ("wrap://ens/eth.resolver.three" )
138189 resolverD = Uri ("wrap://ens/eth.resolver.four" )
139190 ccb = ccb .add_resolvers ([resolverC , resolverD ])
140191 client_config : ClientConfig = ccb .build ()
141192 resolvers = [resolverA , resolverB , resolverC , resolverD ]
142- assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = resolvers , wrappers = []))
193+ assert asdict (client_config ) == asdict (ClientConfig (envs = {}, interfaces = {}, resolver = resolvers , wrappers = [], packages = []))
194+
195+ # TODO: add tests for the following methods
196+
197+ def test_client_config_builder_generic_add ():
198+ # Test adding package, wrapper, resolver, interface, and env with the ccb.add method
199+ pass
0 commit comments