Requests
Create request
Models
API
API zapy.requests.models.RequestMetadata
- Class
-
RequestMetadata( cell_type = 'zapy.ZapyRequest', v = <sdk_version>, tags=[] )
- Attributes
-
cell_type: str = 'zapy.ZapyRequest'- Cell type, use
zapy.ZapyRequestfor requests v: str = <sdk_version>- Version of the SDK
tags: list[str] = []- Optional tags
API zapy.requests.models.ZapyRequest
- Class
-
ZapyRequest( endpoint, method, **kwargs )
- Attributes
-
endpoint: strmethod: strmetadata: RequestMetadata = Nonevariables: list[KeyValueItem] = []params: list[KeyValueItem] = []headers: list[KeyValueItem] = []script: list[str] = []body_type: str = 'None'body: list[str] | list[KeyValueItem] | None = None
API zapy.requests.models.KeyValueItem
- Class
-
KeyValueItem( key, value, active=True )
- Attributes
-
key: strvalue: stractive: bool = True
Example:
from zapy.requests.models import ZapyRequest, KeyValueItem, RequestMetadata
zapy_request = ZapyRequest(
endpoint="http://test/",
method="GET",
metadata=RequestMetadata(
cell_type='zapy.ZapyRequest',
v='0.0.1',
tags=['tag_1'],
),
variables=[
KeyValueItem(key='var1', value='Hello', active=True),
],
params=[
KeyValueItem(key='param1', value='{{var1 + "World"}}', active=True),
],
headers=[
KeyValueItem(key='Content-Type', value='{{ ctx.auto() }}', active=True),
],
script=[
'from decimal import Decimal',
],
body_type='application/json',
body=[
'{',
' hello": "world"'
'}',
],
)
Import request
API
API zapy.requests.from_file
- Function
-
from_file( path )
- Arguments
-
path: Path | str
- Returns
- ZapyRequest
from zapy import requests
from zapy.requests.models import ZapyRequest
req: ZapyRequest = requests.from_file('my_zapy.zapy')
Send request
ZapyRequest.send
-
Import or create requests and send them.
ZapyRequest.sendmay throw throw error test.API
Async MethodZapyRequest.send- [async] send( store=ZapyAuto, logger=print, raise_assert=True )
- Arguments
-
store: Store | ZapyAuto=ZapyAuto-
- If
ZapyAuto, then it will use thedefaultstore - Use a
zapy.store.Storeto define a custom store
- If
logger: print = printprintorprint-like functionraise_assert: AssertTestResultMixin | bool = True-
- If
True, then it will raise an assertion exception if any test fails. - If
False, then it will not raise an exception on test even if there are failures. - If it's called inside a
unittest.TestCaseclass you can extend the class withAssertTestResultMixinand passselftoraise_assertin order to improve the assertion error message.
- If
- Returns
- httpx.Response
from zapy import requests req = requests.from_file('my_zapy.zapy') httpx_response = await req.send()
requests.send_request
-
will not throw throw error test
API
zapy.requests.send_request- Async Function
-
[async] send_request( store=ZapyAuto, logger=print )
- Arguments
-
store: Store | ZapyAuto=ZapyAuto-
- If
ZapyAuto, then it will use thedefaultstore - Use a
zapy.store.Storeto define a custom store
- If
logger: print = printprintorprint-like function
- Returns
- zapy.requests.RequesterResponse
API
zapy.requests.RequesterResponse- Class
-
[async] send_request( store=ZapyAuto, logger=print )
- Attributes
-
response: httpx.Responsetest_result: zapy.test.models.TestResultDict = None
from zapy import requests from zapy.requests import send_request from zapy.test import assert_test_result_dict req = requests.from_file('my_zapy.zapy') response_wrapper = await send_request(req) assert_test_result_dict(response_wrapper.test_result)
Execute chain
Load a chain to execute it and use the variables created.
API zapy.utils.module.load_ipynb
- Async Function
-
[async] load_ipynb( path, variables=None )
- Arguments
-
load_ipynb: Path | str- The path to the
.ipynbfile variables: dict | None = Noneprintorprint-like function
- Returns
-
- types.ModuleType
- Module that contains generated variables in
.ipynbfile
from zapy.utils import module
rel_path = Path('tests/assets')
# invoke jupyter notebook
chain = await module.load_ipynb(rel_path / 'chain_import.ipynb', variables={
'rel_path': rel_path
})
# access a variable
print(chain.out_response)
Reusing connection
Not available for now.