test_blockchain.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:crankycoin 作者: cranklin 项目源码 文件源码
def test_mine_block_whenOneDuplicateTransaction_thenReturnsNone(self):
        transaction = Mock(Transaction)
        transaction.source = "from"
        transaction.timestamp = 1498923800
        transaction.destination = "to"
        transaction.amount = 25
        transaction.fee = 0.1
        transaction.signature = "signature"
        transaction.tx_hash = "transaction_hash"

        block_id_with_same_transaction = 38
        latest_block = Mock(Block)
        latest_block.index = 35
        latest_block.current_hash = "latest_block_hash"
        with patch.object(Blockchain, '__init__', return_value=None) as patched_init, \
                patch.object(Blockchain, 'get_latest_block', return_value=latest_block) as patched_get_latest_block, \
                patch.object(Blockchain, 'pop_next_unconfirmed_transaction', side_effect=[transaction, None]) as patched_pop_next_unconfirmed_transaction, \
                patch.object(Blockchain, 'find_duplicate_transactions', return_value=block_id_with_same_transaction) as patched_find_duplicate_transactions:
            subject = Blockchain()

            resp = subject.mine_block("reward_address")

            self.assertIsNone(resp)
            self.assertEqual(patched_pop_next_unconfirmed_transaction.call_count, 2)
            patched_find_duplicate_transactions.asssert_called_once_with("transaction_hash")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号