def setUp(self): self._inner_task = generate_inner_task(Revision.FOUR.value) self.from_ = Address.from_data(AddressPrefix.EOA, os.urandom(20)) self.to = Address.from_string('cx' + '0' * 40) self.score = Address.from_string('cx' + '1' * 40) IconScoreContext.engine.icx.transfer = Mock() IconScoreContext.engine.icx.get_balance = Mock(return_value=5000) IconScoreContext.engine.prep.preps = Mock()
def setUp(self): self._inner_task = generate_inner_task() factory = self._inner_task._icon_service_engine._step_counter_factory self.step_counter = Mock(spec=IconScoreStepCounter) factory.create = Mock(return_value=self.step_counter) self.step_counter.step_used = 0 self.step_counter.step_price = 0 self.step_counter.step_limit = 5000000
def test_request(self, score_invoke): inner_task = generate_inner_task(3) IconScoreContext.engine.prep.preps = Mock() # noinspection PyUnusedLocal def intercept_invoke(*args, **kwargs): ContextContainer._push_context(args[0]) context_db = inner_task._icon_service_engine._icx_context_db score_address = create_address(AddressPrefix.CONTRACT, b'address') score = SampleScore(IconScoreDatabase(score_address, context_db)) address = create_address(AddressPrefix.EOA, b'address') score.SampleEvent(b'i_data', address, 10, b'data', 'text') ContextContainer._pop_context() score_invoke.side_effect = intercept_invoke from_ = create_address(AddressPrefix.EOA, b'from') to_ = create_address(AddressPrefix.CONTRACT, b'score') request = create_request([ ReqData(bytes.hex(create_tx_hash(b'tx1')), from_, to_, 0, 'call', {}), ReqData(bytes.hex(create_tx_hash(b'tx2')), from_, to_, 0, 'call', {}) ]) response = inner_task._invoke(request) step_total = 0 for tx_hash in response['txResults'].keys(): result = response['txResults'][tx_hash] step_total += int(result['stepUsed'], 16) self.assertIn('status', result) self.assertIn('txHash', result) self.assertIn('txIndex', result) self.assertIn('blockHeight', result) self.assertIn('blockHash', result) self.assertIn('cumulativeStepUsed', result) self.assertIn('stepUsed', result) self.assertEqual(1, len(result['eventLogs'])) self.assertEqual(step_total, int(result['cumulativeStepUsed'], 16)) clear_inner_task()
def setUp(self): self._inner_task = generate_inner_task() self._inner_task._icon_service_engine._icon_pre_validator = \ Mock(spec=IconPreValidator) factory = self._inner_task._icon_service_engine._step_counter_factory self.step_counter = Mock(spec=IconScoreStepCounter) factory.create = Mock(return_value=self.step_counter) self.step_counter.step_used = 0 self.step_counter.step_price = 0 self.step_counter.step_limit = 5000000 self.step_cost_dict = self._init_step_cost() prep_engine = PRepEngine() prep_engine.preps = Mock() fee_engine = FeeEngine() icx_engine = IcxEngine() IconScoreContext.engine = ContextEngine(deploy=Mock(), fee=fee_engine, icx=icx_engine, iiss=None, prep=prep_engine, issue=None)