Source code for microraiden.test.fixtures.proxy
import pytest
from microraiden.channel_manager import ChannelManager
from microraiden.proxy.paywalled_proxy import PaywalledProxy
from microraiden.proxy.resources import Expensive
import microraiden.proxy.resources.login as login
import logging
log = logging.getLogger(__name__)
[docs]class ExpensiveKitten(Expensive):
[docs] def get(self, path):
return "HI I AM A KITTEN"
[docs]class ExpensiveDoggo(Expensive):
[docs] def get(self, path):
return "HI I AM A DOGGO"
[docs]class ExpensiveTeapot(Expensive):
[docs] def get(self, path):
return "HI I AM A TEAPOT", 418
[docs]@pytest.fixture
def proxy_state_filename():
return None
[docs]@pytest.fixture
def empty_proxy(channel_manager: ChannelManager, wait_for_blocks, use_tester: bool):
app = PaywalledProxy(channel_manager)
app.run()
if use_tester:
# Waiting only required on tester chains due to monkey-patched channel manager.
wait_for_blocks(1)
yield app
app.stop()
[docs]@pytest.fixture
def doggo_proxy(
channel_manager: ChannelManager,
proxy_ssl: bool,
proxy_ssl_certs
):
app = PaywalledProxy(channel_manager)
app.add_paywalled_resource(ExpensiveKitten, '/kitten.jpg', 1)
app.add_paywalled_resource(ExpensiveDoggo, '/doggo.jpg', 2)
app.add_paywalled_resource(ExpensiveTeapot, '/teapot.jpg', 3)
ssl_context = proxy_ssl_certs if proxy_ssl else None
app.run(ssl_context=ssl_context)
yield app
app.stop()
[docs]@pytest.fixture
def http_doggo_url(api_endpoint_address) -> str:
return 'http://{}/doggo.jpg'.format(api_endpoint_address)
[docs]@pytest.fixture
def https_doggo_url(api_endpoint_address) -> str:
return 'https://{}/doggo.jpg'.format(api_endpoint_address)
[docs]@pytest.fixture
def users_db():
return login.userDB