Source code for microraiden.test.test_version

from typing import List

import pytest
from web3 import Web3
from web3.contract import Contract

from microraiden.test.config import (
    RECEIVER_ETH_ALLOWANCE,
    RECEIVER_TOKEN_ALLOWANCE
)
from microraiden.channel_manager import ChannelManager
from microraiden.exceptions import InvalidContractVersion
from microraiden.utils import privkey_to_addr


[docs]class FakeChannelManagerContract: def __init__(self, receiver1_privkey): self._address = privkey_to_addr(receiver1_privkey)
[docs] def call(self): # forgive me God for I have sinned here return self
[docs] def version(self): return "6.6.6"
@property def address(self): return self._address
[docs]def test_version( web3: Web3, channel_manager_contract: Contract, token_contract: Contract, make_account, private_keys: List[str] ): """Test if proxy refuses to run if it deployed contract version is different from the one it expects""" receiver1_privkey = make_account( RECEIVER_ETH_ALLOWANCE, RECEIVER_TOKEN_ALLOWANCE, private_keys[2] ) # this one should not raise cm = ChannelManager( web3, channel_manager_contract, token_contract, receiver1_privkey, state_filename=":memory:" ) cm.stop() # now we patch it channel_manager_contract = FakeChannelManagerContract(receiver1_privkey) # check of version string should fail here with pytest.raises(InvalidContractVersion): ChannelManager( web3, channel_manager_contract, token_contract, receiver1_privkey, state_filename=":memory:" )