def get_context(self): context = IconScoreContext(IconScoreContextType.INVOKE) context.step_counter = Mock(spec=IconScoreStepCounter) context.step_counter.step_price = 10 ** 10 context.tx = Mock(spec=Transaction) context.tx.to = self._score_address block = Mock(spec=Block) block.attach_mock(Mock(return_value=0), 'height') context.block = block context.storage = ContextStorage(deploy=self.deploy_storage,fee=self.fee_storage, icx=self.icx_storage, iiss=None, prep=None, issue=None, rc=None, meta=None) context.engine = ContextEngine(deploy=None, fee=None, icx=self._icx_engine, iiss=None, prep=None, issue=None) return context
def context_with_icx_storage(context_db, genesis_address, fee_treasury_address): accounts: list = [{ 'address': genesis_address, 'balance': TOTAL_SUPPLY }, { 'address': fee_treasury_address, 'balance': 0 }] storage = IcxStorage(context_db) context = IconScoreContext(IconScoreContextType.DIRECT) block = Mock(spec=Block) block.attach_mock(Mock(return_value=0), 'height') context.block = block context.storage = ContextStorage(icx=storage) storage.put_genesis_accounts(context, accounts) yield context storage.close(context)
def setUp(self): context = IconScoreContext(IconScoreContextType.DIRECT) block = Mock(spec=Block) block.attach_mock(Mock(return_value=0), 'height') context.block = block self._sender = Address.from_data(AddressPrefix.EOA, os.urandom(20)) self._score_address = Address.from_data(AddressPrefix.CONTRACT, os.urandom(20)) context_db = create_context_db() self.deploy_storage = DeployStorage(context_db) deploy_info = IconScoreDeployInfo(self._score_address, DeployState.ACTIVE, self._sender, os.urandom(32), os.urandom(32)) self.icx_storage = IcxStorage(context_db) self._icx_engine = IcxEngine() self.fee_storage = FeeStorage(context_db) patch_fee_storage(self.fee_storage) self.deploy_storage.put_deploy_info(context, deploy_info) context.storage = ContextStorage(deploy=self.deploy_storage, fee=self.fee_storage, icx=self.icx_storage, iiss=None, prep=None, issue=None, rc=None, meta=None) context.engine = ContextEngine(deploy=None, fee=None, icx=self._icx_engine, iiss=None, prep=None, issue=None) self._icx_engine.open(self.icx_storage) self.icx_storage._put_genesis_data_account(context, CoinPartType.GENERAL, self._sender, 100000000 * 10 ** 18) self.icx_storage._put_genesis_data_account(context, CoinPartType.TREASURY, Address.from_data(AddressPrefix.EOA, os.urandom(20)), 0) self._engine = FeeEngine()
from iconservice.icon_constant import (PREP_MAIN_PREPS, PREP_MAIN_AND_SUB_PREPS, TERM_PERIOD, IconScoreContextType, PenaltyReason, PRepStatus, TermFlag) from iconservice.iconscore.icon_score_context import IconScoreContext from iconservice.icx import IcxStorage from iconservice.prep import PRepStorage from iconservice.prep.data import PRep, Term from iconservice.utils import ContextStorage context = IconScoreContext(IconScoreContextType.DIRECT) context.storage = ContextStorage(deploy=None, fee=None, icx=Mock(spec=IcxStorage), iiss=None, issue=None, rc=None, prep=Mock(spec=PRepStorage), meta=None, inv=None) context.storage.prep.put_term = Mock() def _check_prep_snapshots_in_term(term: 'Term'): assert len(term) == len(term.main_preps) + len(term.sub_preps) for snapshot in term.preps: assert snapshot.address in term class TestTerm(unittest.TestCase):