def generate_service_engine(db_factory_create_by_name, icx_engine_open): service_engine = IconServiceEngine() service_engine._load_builtin_scores = Mock() # Mocks _init_global_value_by_governance_score # to ignore initializing governance SCORE service_engine._init_global_value_by_governance_score = Mock() service_engine.open(IconConfig("", default_icon_config)) # Patches create_by_name to pass creating DB db_factory_create_by_name.assert_called() icx_engine_open.assert_called() service_engine._load_builtin_scores.assert_called() service_engine._init_global_value_by_governance_score.assert_called() # Ignores icx transfer service_engine._icx_engine._transfer = Mock() # Mocks get_balance so, it returns always 100 icx service_engine._icx_engine.get_balance = Mock(return_value=100 * 10**18) return service_engine
def setUp(self): self._state_db_root_path = '.db' self._score_root_path = '.score' rmtree(self._score_root_path) rmtree(self._state_db_root_path) engine = IconServiceEngine() conf = IconConfig("", default_icon_config) conf.load() conf.update_conf({ ConfigKey.BUILTIN_SCORE_OWNER: str(create_address(AddressPrefix.EOA)), ConfigKey.SCORE_ROOT_PATH: self._score_root_path, ConfigKey.STATE_DB_ROOT_PATH: self._state_db_root_path }) engine._load_builtin_scores = Mock() engine._init_global_value_by_governance_score = Mock() engine.open(conf) self._engine = engine self._genesis_address = create_address(AddressPrefix.EOA) self._treasury_address = create_address(AddressPrefix.EOA) self.from_ = self._genesis_address self._to = create_address(AddressPrefix.EOA) self._icon_score_address = create_address(AddressPrefix.CONTRACT) self._total_supply = 100 * 10**18 accounts = [{ 'name': 'god', 'address': self._genesis_address, 'balance': self._total_supply }, { 'name': 'treasury', 'address': self._treasury_address, 'balance': 0 }] block = Block(0, create_block_hash(), 0, None) tx = { 'method': '', 'params': { 'txHash': create_tx_hash() }, 'genesisData': { 'accounts': accounts } } tx_lists = [tx] self._engine.invoke(block, tx_lists) self._engine.commit(block) self.genesis_block = block
def _create_service_engine( rc_db_from_path, db_factory_create_by_name, icx_engine_open, icx_storage_open, iiss_engine_open, iiss_storage_open, prep_engine_open): service_engine = IconServiceEngine() service_engine._load_builtin_scores = Mock() # Mocks _init_global_value_by_governance_score # to ignore initializing governance SCORE service_engine._init_global_value_by_governance_score = Mock() state_db = {} rc_db = {} def state_put(self, key, value): state_db[key] = value def state_get(self, key): return state_db.get(key) def rc_put(key, value): rc_db[key] = value def rc_get(key): return rc_db.get(key) context_db = Mock(spec=ContextDatabase) context_db.key_value_db = state_db context_db.get = state_get context_db.put = state_put iiss_mock_db = Mock(spec=KeyValueDatabase) iiss_mock_db.get = rc_get iiss_mock_db.put = rc_put db_factory_create_by_name.return_value = context_db rc_db_from_path.return_value = iiss_mock_db service_engine.open(IconConfig("", default_icon_config)) # Patches create_by_name to pass creating DB rc_db_from_path.assert_called() db_factory_create_by_name.assert_called() icx_engine_open.assert_called() service_engine._load_builtin_scores.assert_called() service_engine._init_global_value_by_governance_score.assert_called() service_engine._icon_pre_validator._is_inactive_score = Mock() return service_engine