Tests deployment and agency components with layering in mind, (Includes UserEscrow) mirrors lower level tests with higher-level integration points

pull/484/head
Kieran Prasch 2018-10-19 01:16:38 -07:00 committed by jMyles
parent ac2e6622ac
commit 4c01385416
12 changed files with 222 additions and 148 deletions

View File

@ -1,25 +1,44 @@
import os
import random
import string
import pytest
from web3.auto import w3
from nucypher.blockchain.eth.actors import Deployer
from nucypher.blockchain.eth.registry import InMemoryEthereumContractRegistry
from nucypher.blockchain.eth.constants import MIN_LOCKED_PERIODS, MIN_ALLOWED_LOCKED, MAX_MINTING_PERIODS, \
MAX_ALLOWED_LOCKED
def test_rapid_deployment():
memory_registry = InMemoryEthereumContractRegistry()
deployer = Deployer.from_blockchain(provider_uri='tester://pyevm',
registry=memory_registry,
)
@pytest.mark.slow()
def test_rapid_deployment(testerchain):
deployer = Deployer(blockchain=testerchain)
deployer_address, *all_yall = deployer.blockchain.interface.w3.eth.accounts
deployer.deployer_address = deployer_address
# The Big Three (+ Dispatchers)
deployer.deploy_network_contracts(miner_secret=os.urandom(32),
policy_secret=os.urandom(32))
# User Escrow Proxy
deployer.deploy_escrow_proxy(secret=os.urandom(32))
data = [{'address': all_yall[1], 'amount': 100, 'periods': 100},
{'address': all_yall[2], 'amount': 133432, 'periods': 1},
{'address': all_yall[3], 'amount': 999, 'periods': 30}]
deployer.deploy_beneficiary_contracts(allocations=data)
# Deploy User Escrow
total_allocations = 100
# Start with some hard-coded cases...
allocation_data = [{'address': all_yall[1], 'amount': MAX_ALLOWED_LOCKED, 'periods': MIN_LOCKED_PERIODS},
{'address': all_yall[2], 'amount': MIN_ALLOWED_LOCKED, 'periods': MIN_LOCKED_PERIODS},
{'address': all_yall[7], 'amount': MIN_ALLOWED_LOCKED*100, 'periods': MAX_MINTING_PERIODS*3}]
# Pile on the rest
for _ in range(total_allocations - len(allocation_data)):
random_password = ''.join(random.SystemRandom().choice(string.ascii_uppercase+string.digits) for _ in range(16))
acct = w3.eth.account.create(random_password)
beneficiary_address = acct.address
amount = random.randint(MIN_ALLOWED_LOCKED, MAX_ALLOWED_LOCKED)
duration = random.randint(MIN_LOCKED_PERIODS, MAX_MINTING_PERIODS*3)
random_allocation = {'address': beneficiary_address, 'amount': amount, 'periods': duration}
allocation_data.append((random_allocation))
deployer.deploy_beneficiary_contracts(allocations=allocation_data)

View File

@ -12,7 +12,7 @@ def miner(testerchain, three_agents):
token_agent, miner_agent, policy_agent = three_agents
origin, *everybody_else = testerchain.interface.w3.eth.accounts
token_airdrop(token_agent, origin=origin, addresses=everybody_else, amount=DEVELOPMENT_TOKEN_AIRDROP_AMOUNT)
miner = Miner(miner_agent=miner_agent, checksum_address=everybody_else[0], is_me=True)
miner = Miner(checksum_address=everybody_else[0], is_me=True)
return miner
@ -27,7 +27,7 @@ def test_miner_locking_tokens(testerchain, three_agents, miner):
expiration=expiration)
# Verify that the escrow is "approved" to receive tokens
allowance = miner_agent.token_agent.contract.functions.allowance(
allowance = token_agent.contract.functions.allowance(
miner.checksum_public_address,
miner_agent.contract_address).call()
assert 0 == allowance

View File

@ -9,12 +9,12 @@ def author(testerchain, three_agents):
token_agent, miner_agent, policy_agent = three_agents
token_agent.ether_airdrop(amount=100000 * constants.M)
_origin, ursula, alice, *everybody_else = testerchain.interface.w3.eth.accounts
author = PolicyAuthor(checksum_address=alice, policy_agent=policy_agent)
author = PolicyAuthor(checksum_address=alice)
return author
def test_create_policy_author(testerchain, three_agents):
token_agent, miner_agent, policy_agent = three_agents
_origin, ursula, alice, *everybody_else = testerchain.interface.w3.eth.accounts
policy_author = PolicyAuthor(policy_agent=policy_agent, checksum_address=alice)
policy_author = PolicyAuthor(checksum_address=alice)
assert policy_author.checksum_public_address == alice

View File

@ -5,16 +5,11 @@ from nucypher.blockchain.eth.constants import MIN_ALLOWED_LOCKED, MAX_ALLOWED_LO
MIN_LOCKED_PERIODS
@pytest.fixture(scope='module')
def agent(three_agents):
token_agent, miner_agent, policy_agent = three_agents
return miner_agent
def test_deposit_tokens(agent):
testerchain = agent.blockchain
def test_deposit_tokens(testerchain, three_agents):
origin, someone, *everybody_else = testerchain.interface.w3.eth.accounts
token_agent = agent.token_agent
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
_txhash = token_agent.transfer(amount=MIN_ALLOWED_LOCKED * 2, # Transfer
target_address=someone,
@ -38,16 +33,20 @@ def test_deposit_tokens(agent):
testerchain.time_travel(periods=1)
assert agent.get_locked_tokens(node_address=someone) == MIN_ALLOWED_LOCKED
balance = agent.token_agent.get_balance(address=someone)
balance = token_agent.get_balance(address=someone)
assert balance == MIN_ALLOWED_LOCKED
def test_get_miner_population(agent, blockchain_ursulas):
def test_get_miner_population(three_agents, blockchain_ursulas):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
assert agent.get_miner_population() == len(blockchain_ursulas) + 1
@pytest.mark.slow()
def test_get_swarm(agent, blockchain_ursulas):
def test_get_swarm(three_agents, blockchain_ursulas):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
swarm = agent.swarm()
swarm_addresses = list(swarm)
assert len(swarm_addresses) == len(blockchain_ursulas) + 1
@ -62,13 +61,17 @@ def test_get_swarm(agent, blockchain_ursulas):
pytest.fail()
def test_locked_tokens(agent, blockchain_ursulas):
def test_locked_tokens(three_agents, blockchain_ursulas):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
ursula = blockchain_ursulas.pop()
locked_amount = agent.get_locked_tokens(node_address=ursula.checksum_public_address)
assert MAX_ALLOWED_LOCKED > locked_amount > MIN_ALLOWED_LOCKED
def test_get_all_stakes(agent, blockchain_ursulas):
def test_get_all_stakes(three_agents, blockchain_ursulas):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
ursula = blockchain_ursulas.pop()
all_stakes = list(agent.get_all_stakes(miner_address=ursula.checksum_public_address))
assert len(all_stakes) == 1
@ -79,13 +82,15 @@ def test_get_all_stakes(agent, blockchain_ursulas):
assert MAX_ALLOWED_LOCKED > value > MIN_ALLOWED_LOCKED
def get_stake_info(agent):
def get_stake_info(three_agents):
assert False
@pytest.mark.slow()
@pytest.mark.usefixtures("blockchain_ursulas")
def test_sample_miners(agent):
def test_sample_miners(three_agents):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
miners_population = agent.get_miner_population()
with pytest.raises(MinerAgent.NotEnoughMiners):
@ -96,7 +101,9 @@ def test_sample_miners(agent):
assert len(set(miners)) == 3 # ...unique addresses
def test_get_current_period(agent):
def test_get_current_period(three_agents):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
testerchain = agent.blockchain
start_period = agent.get_current_period()
testerchain.time_travel(periods=1)
@ -104,7 +111,9 @@ def test_get_current_period(agent):
assert end_period > start_period
def test_confirm_activity(agent):
def test_confirm_activity(three_agents):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
testerchain = agent.blockchain
origin, someone, *everybody_else = testerchain.interface.w3.eth.accounts
txhash = agent.confirm_activity(node_address=someone)
@ -115,7 +124,9 @@ def test_confirm_activity(agent):
@pytest.mark.skip('To be implemented')
def test_divide_stake(agent):
def test_divide_stake(three_agents):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
testerchain = agent.blockchain
origin, someone, *everybody_else = testerchain.interface.w3.eth.accounts
token_agent = agent.token_agent
@ -150,10 +161,12 @@ def test_divide_stake(agent):
stakes = list(agent.get_all_stakes(miner_address=someone))
assert len(stakes) == 2
def test_collect_staking_reward(agent):
def test_collect_staking_reward(three_agents):
token_agent, miner_agent, policy_agent = three_agents
agent = miner_agent
testerchain = agent.blockchain
origin, someone, *everybody_else = testerchain.interface.w3.eth.accounts
token_agent = agent.token_agent
# Confirm Activity
_txhash = agent.confirm_activity(node_address=someone)

View File

@ -9,17 +9,13 @@ from nucypher.blockchain.eth.constants import MIN_ALLOWED_LOCKED, MIN_LOCKED_PER
TestPolicyMetadata = collections.namedtuple('TestPolicyMetadata', 'policy_id author addresses')
@pytest.fixture(scope='module')
def agent(three_agents):
token_agent, miner_agent, policy_agent = three_agents
return policy_agent
@pytest.fixture(scope='function')
def policy_meta(agent):
testerchain = agent.blockchain
@pytest.mark.usefixtures('blockchain_ursulas')
def policy_meta(testerchain, three_agents):
token_agent, miner_agent, policy_agent = three_agents
origin, someone, *everybody_else = testerchain.interface.w3.eth.accounts
miner_agent = agent.miner_agent
agent = policy_agent
_policy_id = os.urandom(16)
node_addresses = list(miner_agent.sample(quantity=3, duration=1))
_txhash = agent.create_policy(policy_id=_policy_id,
@ -34,10 +30,10 @@ def policy_meta(agent):
@pytest.mark.slow()
@pytest.mark.usefixtures('blockchain_ursulas')
def test_create_policy(agent):
testerchain = agent.blockchain
def test_create_policy(testerchain, three_agents):
token_agent, miner_agent, policy_agent = three_agents
origin, someone, *everybody_else = testerchain.interface.w3.eth.accounts
miner_agent = agent.miner_agent
agent = policy_agent
policy_id = os.urandom(16)
node_addresses = list(miner_agent.sample(quantity=3, duration=1))
@ -53,7 +49,11 @@ def test_create_policy(agent):
assert receipt['logs'][0]['address'] == agent.contract_address
def test_fetch_policy_arrangements(agent, policy_meta):
@pytest.mark.usefixtures('blockchain_ursulas')
def test_fetch_policy_arrangements(three_agents, policy_meta):
token_agent, miner_agent, policy_agent = three_agents
agent = policy_agent
arrangements = list(agent.fetch_policy_arrangements(policy_id=policy_meta.policy_id))
assert arrangements
assert len(arrangements) == len(policy_meta.addresses)
@ -61,7 +61,11 @@ def test_fetch_policy_arrangements(agent, policy_meta):
assert list(record[0] for record in arrangements) == policy_meta.addresses
def test_revoke_arrangement(agent, policy_meta):
@pytest.mark.usefixtures('blockchain_ursulas')
def test_revoke_arrangement(three_agents, policy_meta):
token_agent, miner_agent, policy_agent = three_agents
agent = policy_agent
txhash = agent.revoke_arrangement(policy_id=policy_meta.policy_id,
author_address=policy_meta.author,
node_address=policy_meta.addresses[0])
@ -71,7 +75,11 @@ def test_revoke_arrangement(agent, policy_meta):
assert receipt['logs'][0]['address'] == agent.contract_address
def test_revoke_policy(agent, policy_meta):
@pytest.mark.usefixtures('blockchain_ursulas')
def test_revoke_policy(three_agents, policy_meta):
token_agent, miner_agent, policy_agent = three_agents
agent = policy_agent
txhash = agent.revoke_policy(policy_id=policy_meta.policy_id, author_address=policy_meta.author)
testerchain = agent.blockchain
receipt = testerchain.wait_for_receipt(txhash)
@ -79,9 +87,11 @@ def test_revoke_policy(agent, policy_meta):
assert receipt['logs'][0]['address'] == agent.contract_address
def test_calculate_refund(agent, policy_meta):
testerchain = agent.blockchain
miner_agent = agent.miner_agent
@pytest.mark.usefixtures('blockchain_ursulas')
def test_calculate_refund(testerchain, three_agents, policy_meta):
token_agent, miner_agent, policy_agent = three_agents
agent = policy_agent
ursula = policy_meta.addresses[-1]
testerchain.time_travel(hours=9)
_txhash = miner_agent.confirm_activity(node_address=ursula)
@ -92,8 +102,10 @@ def test_calculate_refund(agent, policy_meta):
@pytest.mark.usefixtures('blockchain_ursulas')
def test_collect_refund(agent, policy_meta):
testerchain = agent.blockchain
def test_collect_refund(testerchain, three_agents, policy_meta):
token_agent, miner_agent, policy_agent = three_agents
agent = policy_agent
testerchain.time_travel(hours=9)
txhash = agent.collect_refund(policy_id=policy_meta.policy_id, author_address=policy_meta.author)
testerchain = agent.blockchain
@ -102,10 +114,10 @@ def test_collect_refund(agent, policy_meta):
assert receipt['logs'][0]['address'] == agent.contract_address
def test_collect_policy_reward(agent, policy_meta):
testerchain = agent.blockchain
miner_agent = agent.miner_agent
token_agent = agent.token_agent
@pytest.mark.usefixtures('blockchain_ursulas')
def test_collect_policy_reward(testerchain, three_agents, policy_meta):
token_agent, miner_agent, policy_agent = three_agents
agent = policy_agent
ursula = policy_meta.addresses[-1]
old_eth_balance = token_agent.blockchain.interface.w3.eth.getBalance(ursula)

View File

@ -34,7 +34,7 @@ def test_token_properties(agent):
assert len(agent.contract_address) == 42
assert agent.contract.address == agent.contract_address
assert agent.contract_name == NucypherTokenAgent.registry_contract_name
assert agent._upgradeable is False
assert not agent._proxy_name # not upgradeable
def test_get_balance(agent):

View File

@ -1,92 +1,143 @@
import os
import maya
import pytest
from eth_utils import is_checksum_address
from nucypher.blockchain.eth.agents import UserEscrowAgent
from nucypher.blockchain.eth.constants import MIN_ALLOWED_LOCKED, MIN_LOCKED_PERIODS
from nucypher.blockchain.eth.constants import MIN_ALLOWED_LOCKED, MIN_LOCKED_PERIODS, MAX_MINTING_PERIODS, \
DISPATCHER_SECRET_LENGTH
from nucypher.blockchain.eth.deployers import UserEscrowDeployer, UserEscrowProxyDeployer
from nucypher.blockchain.eth.registry import InMemoryAllocationRegistry
TEST_ALLOCATION = MIN_ALLOWED_LOCKED*10
registry = InMemoryAllocationRegistry()
@pytest.mark.usefixtures("three_agents")
@pytest.fixture(scope='module')
def agent(three_agents, testerchain):
deployer, someone, *everybody_else = testerchain.interface.w3.eth.accounts
token_agent, miner_agent, policy_agent = three_agents
deployer_address, beneficiary_address, *everybody_else = testerchain.interface.w3.eth.accounts
proxy_deployer = UserEscrowProxyDeployer(deployer_address=deployer,
policy_agent=policy_agent,
secret_hash=os.urandom(32))
# Proxy
proxy_secret = os.urandom(DISPATCHER_SECRET_LENGTH)
proxy_deployer = UserEscrowProxyDeployer(deployer_address=deployer_address,
secret_hash=proxy_secret)
assert proxy_deployer.arm()
proxy_deployer.deploy()
escrow_deployer = UserEscrowDeployer(policy_agent=policy_agent, deployer_address=deployer)
# Escrow
escrow_deployer = UserEscrowDeployer(deployer_address=deployer_address,
allocation_registry=registry)
assert escrow_deployer.arm()
_txhash = escrow_deployer.deploy()
_txhash = escrow_deployer.deploy(beneficiary_address=someone)
escrow_deployer.initial_deposit(value=TEST_ALLOCATION, duration=MIN_LOCKED_PERIODS*10)
assert escrow_deployer.principal_contract.functions.getLockedTokens().call() == TEST_ALLOCATION
escrow_deployer.assign_beneficiary(beneficiary_address=beneficiary_address)
escrow_deployer.enroll_principal_contract()
assert escrow_deployer.principal_contract.functions.getLockedTokens().call() == TEST_ALLOCATION
_agent = escrow_deployer.make_agent()
# user_escrow_agent = UserEscrowAgent(policy_agent=policy_agent, beneficiary=someone)
return _agent
_direct_agent = UserEscrowAgent(blockchain=testerchain,
allocation_registry=registry,
beneficiary=beneficiary_address)
assert _direct_agent == _agent
assert _direct_agent.contract.abi == _agent.contract.abi
assert _direct_agent.contract.address == _agent.contract.address
assert _agent.principal_contract.address == escrow_deployer.principal_contract.address
assert _agent.principal_contract.abi == escrow_deployer.principal_contract.abi
assert _direct_agent.contract.abi == escrow_deployer.principal_contract.abi
assert _direct_agent.contract.address == escrow_deployer.principal_contract.address
yield _agent
testerchain.interface.registry.clear()
def test_user_escrow_agent_represents_beneficiary(agent):
def test_user_escrow_agent_represents_beneficiary(agent, three_agents):
token_agent, miner_agent, policy_agent = three_agents
# Name
assert agent.registry_contract_name == UserEscrowAgent.registry_contract_name
assert agent != agent.miner_agent, "UserEscrow Agent is connected to the MinerEscrow's contract"
assert agent.contract_address != agent.miner_agent.contract_address, "UserEscrow and MinerEscrow agents represent the same contract"
# Not Equal to MinerAgent
assert agent != miner_agent, "UserEscrow Agent is connected to the MinerEscrow's contract"
assert agent.contract_address != miner_agent.contract_address, "UserEscrow and MinerEscrow agents represent the same contract"
# Proxy Target Accuracy
assert agent.principal_contract.address == agent.proxy_contract.address
assert agent.principal_contract.abi != agent.proxy_contract.abi
assert agent.principal_contract.address == agent.contract.address
assert agent.principal_contract.abi == agent.contract.abi
def test_read_beneficiary(agent):
beneficiary_address = agent.beneficiary
assert is_checksum_address(beneficiary_address)
def test_read_beneficiary(testerchain, agent):
deployer_address, beneficiary_address, *everybody_else = testerchain.interface.w3.eth.accounts
benficiary = agent.beneficiary
assert benficiary == beneficiary_address
assert is_checksum_address(benficiary)
def test_read_end_timestamp(agent):
end_timestamp = agent.end_timestamp
assert end_timestamp
def test_read_allocation(agent):
def test_read_allocation(agent, three_agents):
token_agent, miner_agent, policy_agent = three_agents
balance = token_agent.get_balance(address=agent.principal_contract.address)
assert balance == TEST_ALLOCATION
allocation = agent.allocation
assert allocation > 0 < MIN_ALLOWED_LOCKED
assert allocation > 0
assert allocation == TEST_ALLOCATION
def test_initial_deposit(agent):
testerchain = agent.blockchain
origin, someone, *everybody_else = testerchain.interface.w3.eth.accounts
token_agent = agent.token_agent
_txhash = token_agent.transfer(amount=MIN_ALLOWED_LOCKED * 2, # Transfer
target_address=someone,
sender_address=origin)
_txhash = token_agent.approve_transfer(amount=MIN_ALLOWED_LOCKED, # Approve
target_address=agent.contract_address,
sender_address=someone)
#
# Deposit
#
txhash = agent.deposit_tokens(amount=MIN_ALLOWED_LOCKED,
lock_periods=MIN_LOCKED_PERIODS,
sender_address=someone)
# Check the receipt for the contract address success code
receipt = testerchain.wait_for_receipt(txhash)
assert receipt['status'] == 1, "Transaction Rejected"
assert receipt['logs'][1]['address'] == agent.contract_address
def test_read_locked_tokens(agent, three_agents):
token_agent, miner_agent, policy_agent = three_agents
balance = token_agent.get_balance(address=agent.principal_contract.address)
assert balance == TEST_ALLOCATION
assert agent.principal_contract.functions.getLockedTokens().call() == TEST_ALLOCATION
assert agent.locked_tokens == TEST_ALLOCATION
def test_withdraw_tokens(agent):
assert False
@pytest.mark.usesfixtures("three_agents")
def test_read_timestamp(agent):
timestamp = agent.end_timestamp
end_locktime = maya.MayaDT(timestamp)
assert end_locktime.slang_time()
now = maya.now()
assert now < end_locktime, '{} is not in the future!'.format(end_locktime.slang_date())
def test_withdraw_eth(agent):
assert False
@pytest.mark.usesfixtures("three_agents")
def test_deposit_as_miner(testerchain, agent, three_agents):
old_locked_value = agent.principal_contract.functions.lockedValue().call()
txhash = agent.deposit_as_miner(value=MIN_ALLOWED_LOCKED, periods=MIN_LOCKED_PERIODS)
assert txhash
new_locked_value = agent.principal_contract.functions.lockedValue().call()
assert new_locked_value > old_locked_value
def test_transfer_as_miner(agent):
assert False
@pytest.mark.usesfixtures("three_agents")
def test_withdraw_as_miner(agent, testerchain):
testerchain.time_travel(periods=1)
txhash = agent.withdraw_as_miner(value=MIN_ALLOWED_LOCKED)
assert txhash
def test_withdraw_as_miner(agent):
assert False
def test_withdraw_eth(testerchain, agent, three_agents):
token_agent, __proxy_contract, policy_agent = three_agents
deployer_address, beneficiary_address, *everybody_else = testerchain.interface.w3.eth.accounts
old_balance = testerchain.interface.w3.eth.getBalance(account=beneficiary_address)
txhash = agent.withdraw_eth()
assert txhash
new_balance = testerchain.interface.w3.eth.getBalance(account=beneficiary_address)
assert new_balance > old_balance
def test_withdraw_tokens(testerchain, agent, three_agents):
token_agent, miner_agent, policy_agent = three_agents
deployer_address, beneficiary_address, *everybody_else = testerchain.interface.w3.eth.accounts
old_balance = token_agent.get_balance(address=beneficiary_address)
agent.withdraw_tokens(value=agent.allocation)
new_balance = token_agent.get_balance(address=beneficiary_address)
assert new_balance > old_balance

View File

@ -47,7 +47,7 @@ def test_deploy_ethereum_contracts(testerchain):
#
miners_escrow_secret = os.urandom(DISPATCHER_SECRET_LENGTH)
miner_escrow_deployer = MinerEscrowDeployer(
token_agent=token_agent,
blockchain=testerchain,
deployer_address=origin,
secret_hash=testerchain.interface.w3.sha3(miners_escrow_secret))
assert miner_escrow_deployer.deployer_address == origin
@ -64,7 +64,7 @@ def test_deploy_ethereum_contracts(testerchain):
assert miner_escrow_deployer.is_deployed
assert len(miner_escrow_deployer.contract_address) == 42
miner_agent = MinerAgent(token_agent=token_agent)
miner_agent = MinerAgent(blockchain=testerchain)
assert len(miner_agent.contract_address) == 42
assert miner_agent.contract_address == miner_escrow_deployer.contract_address
@ -78,7 +78,7 @@ def test_deploy_ethereum_contracts(testerchain):
#
policy_manager_secret = os.urandom(DISPATCHER_SECRET_LENGTH)
policy_manager_deployer = PolicyManagerDeployer(
miner_agent=miner_agent,
blockchain=testerchain,
deployer_address=origin,
secret_hash=testerchain.interface.w3.sha3(policy_manager_secret))
assert policy_manager_deployer.deployer_address == origin

View File

@ -13,11 +13,9 @@ def test_token_deployer_and_agent(testerchain):
token_deployer = NucypherTokenDeployer(blockchain=testerchain, deployer_address=origin)
token_deployer.arm()
token_deployer.deploy()
token_agent = token_deployer.make_agent()
secret_hash = os.urandom(32)
deployer = MinerEscrowDeployer(blockchain=testerchain,
token_agent=token_agent,
deployer_address=origin,
secret_hash=secret_hash)
@ -41,7 +39,7 @@ def test_token_deployer_and_agent(testerchain):
assert expected_token_supply == miner_agent.contract.functions.totalSupply().call()
# Retrieve the token from the blockchain
same_miner_agent = MinerAgent(token_agent=token_agent)
same_miner_agent = MinerAgent()
# Compare the contract address for equality
assert miner_agent.contract_address == same_miner_agent.contract_address

View File

@ -16,7 +16,6 @@ def test_policy_manager_deployer(testerchain):
miners_escrow_secret = os.urandom(DISPATCHER_SECRET_LENGTH)
miner_escrow_deployer = MinerEscrowDeployer(
token_agent=token_agent,
deployer_address=origin,
secret_hash=testerchain.interface.w3.sha3(miners_escrow_secret))
miner_escrow_deployer.arm()
@ -26,7 +25,6 @@ def test_policy_manager_deployer(testerchain):
policy_manager_secret = os.urandom(DISPATCHER_SECRET_LENGTH)
deployer = PolicyManagerDeployer(
miner_agent=miner_agent,
deployer_address=origin,
secret_hash=testerchain.interface.w3.sha3(policy_manager_secret))
deployer.arm()
@ -42,7 +40,7 @@ def test_policy_manager_deployer(testerchain):
policy_manager_contract = policy_agent.contract
# Retrieve the token from the blockchain
some_policy_agent = PolicyAgent(miner_agent=miner_agent)
some_policy_agent = PolicyAgent()
assert some_policy_agent.contract.address == policy_manager_contract.address
# Compare the contract address for equality

View File

@ -14,7 +14,6 @@ def user_escrow_proxy(three_agents):
deployer, alice, bob, *all_yall = testerchain.interface.w3.eth.accounts
escrow_proxy_deployer = UserEscrowProxyDeployer(deployer_address=deployer,
policy_agent=policy_agent,
secret_hash=os.urandom(32))
assert escrow_proxy_deployer.arm()
_escrow_proxy_deployments_txhashes = escrow_proxy_deployer.deploy()
@ -24,27 +23,16 @@ def user_escrow_proxy(three_agents):
testerchain.sever_connection()
def test_user_escrow_proxy_deployer():
pass
@pytest.mark.usesfixtures('three_agents')
def test_user_escrow_deployer(three_agents, testerchain):
token_agent, miner_agent, policy_agent = three_agents
deployer, alice, bob, *all_yall = testerchain.interface.w3.eth.accounts
# Depends on UserEscrowProxy Deployment (and thus Linker, too)
# with pytest.raises(testerchain.interface.registry.UnknownContract):
# deployer = UserEscrowDeployer(policy_agent=policy_agent,
# deployer_address=deployer)
escrow_proxy_deployer = UserEscrowProxyDeployer(deployer_address=deployer,
policy_agent=policy_agent,
secret_hash=os.urandom(32))
assert escrow_proxy_deployer.arm()
_escrow_proxy_deployments_txhashes = escrow_proxy_deployer.deploy()
deployer = UserEscrowDeployer(policy_agent=policy_agent,
deployer_address=deployer)
deployer = UserEscrowDeployer(deployer_address=deployer)
assert deployer.arm()
deployment_txhashes = deployer.deploy()
@ -61,8 +49,7 @@ def test_deploy_multiple(three_agents, testerchain):
number_of_deployments = 100
for index in range(number_of_deployments):
deployer = UserEscrowDeployer(policy_agent=policy_agent,
deployer_address=deployer)
deployer = UserEscrowDeployer(deployer_address=deployer)
assert deployer.arm()
deployment_txhashes = deployer.deploy()

View File

@ -116,7 +116,6 @@ def ursula_decentralized_test_config(three_agents):
is_me=True,
start_learning_now=False,
abort_on_learning_error=True,
miner_agent=miner_agent,
federated_only=False,
network_middleware=MockRestMiddleware(),
import_seed_registry=False,
@ -155,7 +154,6 @@ def alice_blockchain_test_config(blockchain_ursulas, three_agents):
checksum_address=alice_address,
passphrase=TEST_URSULA_INSECURE_DEVELOPMENT_PASSWORD,
network_middleware=MockRestMiddleware(),
policy_agent=policy_agent,
known_nodes=blockchain_ursulas,
abort_on_learning_error=True,
import_seed_registry=False,
@ -382,7 +380,6 @@ def three_agents(testerchain):
miners_escrow_secret = os.urandom(DISPATCHER_SECRET_LENGTH)
miner_escrow_deployer = MinerEscrowDeployer(
token_agent=token_agent,
deployer_address=origin,
secret_hash=testerchain.interface.w3.sha3(miners_escrow_secret))
miner_escrow_deployer.arm()
@ -392,7 +389,6 @@ def three_agents(testerchain):
policy_manager_secret = os.urandom(DISPATCHER_SECRET_LENGTH)
policy_manager_deployer = PolicyManagerDeployer(
miner_agent=miner_agent,
deployer_address=origin,
secret_hash=testerchain.interface.w3.sha3(policy_manager_secret))
policy_manager_deployer.arm()