mirror of https://github.com/nucypher/nucypher.git
Intro MockPolicyManagerAgent
parent
a58af7daf3
commit
1164db20f4
|
@ -7,7 +7,7 @@ from hexbytes import HexBytes
|
||||||
from unittest.mock import Mock
|
from unittest.mock import Mock
|
||||||
|
|
||||||
from nucypher.blockchain.economics import EconomicsFactory
|
from nucypher.blockchain.economics import EconomicsFactory
|
||||||
from nucypher.blockchain.eth.agents import WorkLockAgent, StakingEscrowAgent, NucypherTokenAgent
|
from nucypher.blockchain.eth.agents import WorkLockAgent, StakingEscrowAgent, NucypherTokenAgent, PolicyManagerAgent
|
||||||
from nucypher.blockchain.eth.constants import NULL_ADDRESS
|
from nucypher.blockchain.eth.constants import NULL_ADDRESS
|
||||||
from nucypher.blockchain.eth.interfaces import BlockchainInterfaceFactory
|
from nucypher.blockchain.eth.interfaces import BlockchainInterfaceFactory
|
||||||
from nucypher.utilities.sandbox.constants import MOCK_PROVIDER_URI
|
from nucypher.utilities.sandbox.constants import MOCK_PROVIDER_URI
|
||||||
|
@ -143,15 +143,19 @@ class MockContractAgent:
|
||||||
|
|
||||||
|
|
||||||
class MockNucypherToken(MockContractAgent, NucypherTokenAgent):
|
class MockNucypherToken(MockContractAgent, NucypherTokenAgent):
|
||||||
|
"""Look at me im a token!"""
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class MockStakingAgent(MockContractAgent, StakingEscrowAgent):
|
class MockStakingAgent(MockContractAgent, StakingEscrowAgent):
|
||||||
|
"""dont forget the eggs!"""
|
||||||
|
|
||||||
CALLS = ('get_completed_work', )
|
CALLS = ('get_completed_work', )
|
||||||
|
|
||||||
|
|
||||||
|
class MockPolicyManagerAgent(MockContractAgent, PolicyManagerAgent):
|
||||||
|
"""The best ethereum policy manager ever"""
|
||||||
|
|
||||||
|
|
||||||
class MockWorkLockAgent(MockContractAgent, WorkLockAgent):
|
class MockWorkLockAgent(MockContractAgent, WorkLockAgent):
|
||||||
|
|
||||||
CALLS = ('check_claim',
|
CALLS = ('check_claim',
|
||||||
|
@ -192,17 +196,21 @@ class MockWorkLockAgent(MockContractAgent, WorkLockAgent):
|
||||||
|
|
||||||
class MockContractAgency:
|
class MockContractAgency:
|
||||||
|
|
||||||
# Test doubles registry
|
# Test doubles
|
||||||
DOUBLE_AGENTS = {WorkLockAgent: MockWorkLockAgent,
|
DOUBLE_AGENTS = {NucypherTokenAgent: MockNucypherToken,
|
||||||
StakingEscrowAgent: MockStakingAgent,
|
StakingEscrowAgent: MockStakingAgent,
|
||||||
NucypherTokenAgent: MockNucypherToken}
|
PolicyManagerAgent: MockPolicyManagerAgent,
|
||||||
|
WorkLockAgent: MockWorkLockAgent}
|
||||||
|
|
||||||
|
class NoMockFound(ValueError):
|
||||||
|
"""Well we hadn't made one yet"""
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_agent(cls, agent_class, *args, **kwargs) -> MockContractAgent:
|
def get_agent(cls, agent_class, *args, **kwargs) -> MockContractAgent:
|
||||||
try:
|
try:
|
||||||
double = cls.DOUBLE_AGENTS[agent_class]
|
double = cls.DOUBLE_AGENTS[agent_class]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise ValueError(f'No mock available for "{str(agent_class)}"')
|
raise ValueError(f'No mock class available for "{str(agent_class)}"')
|
||||||
else:
|
else:
|
||||||
return double()
|
return double()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue