Source code for microraiden.test.fixtures.session
import pytest
import logging
import types
from microraiden import Session, Client
log = logging.getLogger(__name__)
[docs]@pytest.fixture
def session(client: Client, use_tester: bool, api_endpoint_address: str):
# patch request_resource of this instance in order to advance blocks when doing requests
def request_patched(self: Session, method: str, url: str, **kwargs):
if use_tester:
log.info('Mining new block.')
self.client.context.web3.testing.mine(1)
return Session._request_resource(self, method, url, **kwargs)
kwargs = {}
if use_tester:
kwargs['retry_interval'] = 0.1
session = Session(
client,
endpoint_url='http://' + api_endpoint_address,
**kwargs
)
session._request_resource = types.MethodType(request_patched, session)
yield session
session.close()