def test_journal_transaction_block_update_block_weight(self):
        # Test block update weight
        minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
        transBlock = TransactionBlock(minfo)
        transBlock.Status = tbStatus.valid
        signingkey = SigObj.generate_signing_key()
        ident = SigObj.generate_identifier(signingkey)
        node = Node(identifier=ident, signingkey=signingkey,
                    address=("localhost", 10003))
        # Takes a journal, create a temporary directory to use with the journal
        path = tempfile.mkdtemp()
        journal = Journal(node, DataDirectory=path)
        transBlock.sign_from_node(node)
        transBlock.update_block_weight(journal)
        # No transactions
        self.assertEquals(transBlock.TransactionDepth, 0)

        minfo = {'__SIGNATURE__': 'Test', '__NONCE__': time.time(),
                 'Dependencies': []}
        transaction = Transaction(minfo)
        transaction.sign_from_node(node)
        transBlock.TransactionIDs += [transaction.Identifier]
        transBlock.update_block_weight(journal)
        # One transaction
        self.assertEquals(transBlock.TransactionDepth, 1)

        minfo = {'__SIGNATURE__': 'Test', "BlockNum": 1,
                 'PreviousBlockID': transBlock.Identifier}
        newTransBlock = TransactionBlock(minfo)
        newTransBlock.Status = tbStatus.valid
        journal.BlockStore[transBlock.Identifier] = transBlock
        newTransBlock.update_block_weight(journal)
        # Get depth from previous block
        self.assertEquals(newTransBlock.TransactionDepth, 1)
    def test_journal_transaction_block_update_block_weight(self):
        # Test block update weight
        minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
        trans_block = TransactionBlock(minfo)
        trans_block.Status = tbStatus.valid

        (gossip, journal) = self._create_journal()
        node = gossip.LocalNode
        trans_block.sign_from_node(gossip.LocalNode)
        trans_block.update_block_weight(journal)
        # No transactions
        self.assertEquals(trans_block.TransactionDepth, 0)

        minfo = {'__SIGNATURE__': 'Test', '__NONCE__': time.time(),
                 'Dependencies': []}
        transaction = Transaction(minfo)
        transaction.sign_from_node(node)
        trans_block.TransactionIDs += [transaction.Identifier]
        trans_block.update_block_weight(journal)
        # One transaction
        self.assertEquals(trans_block.TransactionDepth, 1)

        minfo = {'__SIGNATURE__': 'Test', "BlockNum": 1,
                 'PreviousBlockID': trans_block.Identifier}
        new_trans_block = TransactionBlock(minfo)
        new_trans_block.Status = tbStatus.valid
        journal.block_store[trans_block.Identifier] = trans_block
        new_trans_block.update_block_weight(journal)
        # Get depth from previous block
        self.assertEquals(new_trans_block.TransactionDepth, 1)
    def test_journal_transaction_block_update_block_weight(self):
        # Test block update weight
        minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
        trans_block = TransactionBlock(minfo)
        trans_block.Status = tbStatus.valid

        (gossip, journal) = self._create_journal()
        node = gossip.LocalNode
        trans_block.sign_from_node(gossip.LocalNode)
        trans_block.update_block_weight(journal)
        # No transactions
        self.assertEquals(trans_block.TransactionDepth, 0)

        minfo = {'__SIGNATURE__': 'Test', '__NONCE__': time.time(),
                 'Dependencies': []}
        transaction = Transaction(minfo)
        transaction.sign_from_node(node)
        trans_block.TransactionIDs += [transaction.Identifier]
        trans_block.update_block_weight(journal)
        # One transaction
        self.assertEquals(trans_block.TransactionDepth, 1)

        minfo = {'__SIGNATURE__': 'Test', "BlockNum": 1,
                 'PreviousBlockID': trans_block.Identifier}
        new_trans_block = TransactionBlock(minfo)
        new_trans_block.Status = tbStatus.valid
        journal.block_store[trans_block.Identifier] = trans_block
        new_trans_block.update_block_weight(journal)
        # Get depth from previous block
        self.assertEquals(new_trans_block.TransactionDepth, 1)
    def test_journal_transaction_block_update_block_weight(self):
        # Test block update weight
        minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
        transBlock = TransactionBlock(minfo)
        transBlock.Status = tbStatus.valid
        signingkey = SigObj.generate_signing_key()
        ident = SigObj.generate_identifier(signingkey)
        node = Node(identifier=ident,
                    signingkey=signingkey,
                    address=("localhost", 10003))
        # Takes a journal, create a temporary directory to use with the journal
        path = tempfile.mkdtemp()
        journal = Journal(node, DataDirectory=path)
        transBlock.sign_from_node(node)
        transBlock.update_block_weight(journal)
        # No transactions
        self.assertEquals(transBlock.TransactionDepth, 0)

        minfo = {
            '__SIGNATURE__': 'Test',
            '__NONCE__': time.time(),
            'Dependencies': []
        }
        transaction = Transaction(minfo)
        transaction.sign_from_node(node)
        transBlock.TransactionIDs += [transaction.Identifier]
        transBlock.update_block_weight(journal)
        # One transaction
        self.assertEquals(transBlock.TransactionDepth, 1)

        minfo = {
            '__SIGNATURE__': 'Test',
            "BlockNum": 1,
            'PreviousBlockID': transBlock.Identifier
        }
        newTransBlock = TransactionBlock(minfo)
        newTransBlock.Status = tbStatus.valid
        journal.BlockStore[transBlock.Identifier] = transBlock
        newTransBlock.update_block_weight(journal)
        # Get depth from previous block
        self.assertEquals(newTransBlock.TransactionDepth, 1)