11from pathlib import Path
2-
2+ import pytest
33from polywrap_client import PolywrapClient
4- from polywrap_core import Uri , InvokerOptions , InterfaceImplementations , Env
4+ from polywrap_core import Uri , InvokerOptions
55from polywrap_uri_resolvers import BaseUriResolver , SimpleFileReader
6-
6+ from polywrap_result import Ok
77from polywrap_client .client import PolywrapClientConfig
88
99
@@ -31,7 +31,7 @@ async def test_subinvoke():
3131 },
3232 )
3333
34- client = PolywrapClient (config = PolywrapClientConfig (envs = [], resolver = uri_resolver ))
34+ client = PolywrapClient (config = PolywrapClientConfig (resolver = uri_resolver ))
3535 uri = Uri (
3636 f'fs/{ Path (__file__ ).parent .joinpath ("cases" , "simple-subinvoke" , "invoke" ).absolute ()} '
3737 )
@@ -48,19 +48,15 @@ async def test_interface_implementation():
4848 redirects = {},
4949 )
5050
51+ interface_uri = Uri ("ens/interface.eth" )
5152 impl_uri = Uri (
5253 f'fs/{ Path (__file__ ).parent .joinpath ("cases" , "simple-interface" , "implementation" ).absolute ()} '
5354 )
5455
5556 client = PolywrapClient (
5657 config = PolywrapClientConfig (
57- envs = [],
5858 resolver = uri_resolver ,
59- interfaces = [
60- InterfaceImplementations (
61- interface = Uri ("ens/interface.eth" ), implementations = [impl_uri ]
62- )
63- ],
59+ interfaces = {interface_uri : [impl_uri ]}
6460 )
6561 )
6662 uri = Uri (
@@ -71,10 +67,26 @@ async def test_interface_implementation():
7167 uri = uri , method = "moduleMethod" , args = args , encode_result = False
7268 )
7369 result = await client .invoke (options )
74-
70+ assert client . get_implementations ( interface_uri ) == Ok ([ impl_uri ])
7571 assert result .unwrap () == {"str" : "hello" , "uint8" : 2 }
7672
7773
74+ def test_get_env_by_uri ():
75+ uri_resolver = BaseUriResolver (
76+ file_reader = SimpleFileReader (),
77+ redirects = {},
78+ )
79+ uri = Uri (f'fs/{ Path (__file__ ).parent .joinpath ("cases" , "simple-env" ).absolute ()} ' )
80+ env = {"externalArray" : [1 , 2 , 3 ], "externalString" : "hello" }
81+
82+ client = PolywrapClient (
83+ config = PolywrapClientConfig (
84+ envs = {uri : env },
85+ resolver = uri_resolver ,
86+ )
87+ )
88+ assert client .get_env_by_uri (uri ) == env
89+
7890async def test_env ():
7991 uri_resolver = BaseUriResolver (
8092 file_reader = SimpleFileReader (),
@@ -86,13 +98,14 @@ async def test_env():
8698
8799 client = PolywrapClient (
88100 config = PolywrapClientConfig (
89- envs = [ Env ( uri = uri , env = env )] ,
101+ envs = { uri : env } ,
90102 resolver = uri_resolver ,
91103 )
92104 )
93105 options = InvokerOptions (
94- uri = uri , method = "externalEnvMethod" , args = {}, encode_result = False
106+ uri = uri , method = "externalEnvMethod" , args = {}, encode_result = False ,
95107 )
108+
96109 result = await client .invoke (options )
97110
98111 assert result .unwrap () == env
0 commit comments