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)
    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_cmp_unsigned(self):
     # Test AssertionError is raised if TransactionBlock are not signed
     # Need a signature to use Identifier
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     transBlock1 = TransactionBlock(minfo)
     transBlock2 = TransactionBlock(minfo)
     transBlock1.Status = tbStatus.valid
     transBlock2.Status = tbStatus.valid
     try:
         cmp(transBlock2, transBlock1)
         self.fail("This should cause an AssertionError")
     except AssertionError, e2:
         self.assertIsInstance(e2, AssertionError)
 def test_journal_transaction_block_cmp_unsigned(self):
     # Test AssertionError is raised if TransactionBlock are not signed
     # Need a signature to use Identifier
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     trans_block1 = TransactionBlock(minfo)
     trans_block2 = TransactionBlock(minfo)
     trans_block1.Status = tbStatus.valid
     trans_block2.Status = tbStatus.valid
     try:
         cmp(trans_block2, trans_block1)
         self.fail("This should cause an AssertionError")
     except AssertionError, e2:
         self.assertIsInstance(e2, AssertionError)
 def _create_tblock(self, node, blocknum, prevB, transId):
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": blocknum,
              "PreviousBlockID": prevB, "TransactionIDs": transId}
     transBlock = TransactionBlock(minfo)
     transBlock.sign_from_node(node)
     transBlock.Status = Status.valid
     return transBlock
Exemple #7
0
 def _create_tblock(self, node, blocknum, prev_block, trans_id):
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": blocknum,
              "PreviousBlockID": prev_block, "TransactionIDs": trans_id}
     trans_block = TransactionBlock(minfo)
     trans_block.sign_from_node(node)
     trans_block.Status = Status.valid
     return trans_block
 def test_journal_transaction_block_cmp_valid_blocks(self):
     # Test the overridden cmp function
     # Needs the Blocks to be signed and valid
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     trans_block1 = TransactionBlock(minfo)
     trans_block2 = TransactionBlock(minfo)
     node = self._create_node()
     # Need to sign TransactionBlock, use sign_from_node form signed object
     trans_block1.sign_from_node(node)
     trans_block2.sign_from_node(node)
     trans_block1.Status = tbStatus.valid
     trans_block2.Status = tbStatus.valid
     # Test Equal Transaction Blocks
     self.assertEquals(cmp(trans_block2, trans_block1), 0)
     # Test a Transaction Block with greater Transaction Depth
     trans_block2.TransactionDepth = 10
     self.assertEquals(cmp(trans_block2, trans_block1), 1)
     # Test a Transaction Block with lesser Transaction Depth
     trans_block1.TransactionDepth = 20
     self.assertEquals(cmp(trans_block2, trans_block1), -1)
 def test_journal_transaction_block_cmp_valid_blocks(self):
     # Test the overridden cmp function
     # Needs the Blocks to be signed and valid
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     trans_block1 = TransactionBlock(minfo)
     trans_block2 = TransactionBlock(minfo)
     node = self._create_node()
     # Need to sign TransactionBlock, use sign_from_node form signed object
     trans_block1.sign_from_node(node)
     trans_block2.sign_from_node(node)
     trans_block1.Status = tbStatus.valid
     trans_block2.Status = tbStatus.valid
     # Test Equal Transaction Blocks
     self.assertEquals(cmp(trans_block2, trans_block1), 0)
     # Test a Transaction Block with greater Transaction Depth
     trans_block2.TransactionDepth = 10
     self.assertEquals(cmp(trans_block2, trans_block1), 1)
     # Test a Transaction Block with lesser Transaction Depth
     trans_block1.TransactionDepth = 20
     self.assertEquals(cmp(trans_block2, trans_block1), -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)
 def test_journal_transaction_block_build_message(self):
     # Test build_message, returns a TransactionBlockMessage
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     trans_block = TransactionBlock(minfo)
     node = self._create_node()
     trans_block.sign_from_node(node)
     trans_block.Status = tbStatus.valid
     msg = trans_block.build_message()
     self.assertEquals(msg.MessageType,
                       "/journal.messages.TransactionBlockMessage" +
                       "/TransactionBlock")
     self.assertEquals(msg.TransactionBlock, trans_block)
 def test_journal_transaction_block_build_message(self):
     # Test build_message, returns a TransactionBlockMessage
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     trans_block = TransactionBlock(minfo)
     node = self._create_node()
     trans_block.sign_from_node(node)
     trans_block.Status = tbStatus.valid
     msg = trans_block.build_message()
     self.assertEquals(msg.MessageType,
                       "/journal.messages.TransactionBlockMessage" +
                       "/TransactionBlock")
     self.assertEquals(msg.TransactionBlock, trans_block)
 def test_journal_transaction_block_dump(self):
     # Test that transactions dump the correct info
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     trans_block = TransactionBlock(minfo)
     node = self._create_node()
     trans_block.sign_from_node(node)
     trans_block.Status = tbStatus.valid
     tb_dic = trans_block.dump()
     self.assertEquals(tb_dic["TransactionIDs"], [])
     self.assertEquals(tb_dic["TransactionBlockType"], "/TransactionBlock")
     self.assertEquals(tb_dic["BlockNum"], 0)
     self.assertIsNotNone(tb_dic["Signature"])
     self.assertNotEquals(tb_dic["Signature"], "")
 def test_journal_transaction_block_dump(self):
     # Test that transactions dump the correct info
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     trans_block = TransactionBlock(minfo)
     node = self._create_node()
     trans_block.sign_from_node(node)
     trans_block.Status = tbStatus.valid
     tb_dic = trans_block.dump()
     self.assertEquals(tb_dic["TransactionIDs"], [])
     self.assertEquals(tb_dic["TransactionBlockType"], "/TransactionBlock")
     self.assertEquals(tb_dic["BlockNum"], 0)
     self.assertIsNotNone(tb_dic["Signature"])
     self.assertNotEquals(tb_dic["Signature"], "")
 def test_journal_transaction_block_cmp_valid_blocks(self):
     # Test the overridden cmp function
     # Needs the Blocks to be signed and valid
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     transBlock1 = TransactionBlock(minfo)
     transBlock2 = TransactionBlock(minfo)
     signingkey = SigObj.generate_signing_key()
     ident = SigObj.generate_identifier(signingkey)
     node = Node(identifier=ident, signingkey=signingkey,
                 address=("localhost", 8800))
     # Need to sign TransactionBlock, use sign_from_node form signed object
     transBlock1.sign_from_node(node)
     transBlock2.sign_from_node(node)
     transBlock1.Status = tbStatus.valid
     transBlock2.Status = tbStatus.valid
     # Test Equal Transaction Blocks
     self.assertEquals(cmp(transBlock2, transBlock1), 0)
     # Test a Transaction Block with greater Transaction Depth
     transBlock2.TransactionDepth = 10
     self.assertEquals(cmp(transBlock2, transBlock1), 1)
     # Test a Transaction Block with lesser Transaction Depth
     transBlock1.TransactionDepth = 20
     self.assertEquals(cmp(transBlock2, transBlock1), -1)
Exemple #16
0
 def test_journal_transaction_block_cmp_valid_blocks(self):
     # Test the overridden cmp function
     # Needs the Blocks to be signed and valid
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     transBlock1 = TransactionBlock(minfo)
     transBlock2 = TransactionBlock(minfo)
     signingkey = SigObj.generate_signing_key()
     ident = SigObj.generate_identifier(signingkey)
     node = Node(identifier=ident, signingkey=signingkey,
                 address=("localhost", 8800))
     # Need to sign TransactionBlock, use sign_from_node form signed object
     transBlock1.sign_from_node(node)
     transBlock2.sign_from_node(node)
     transBlock1.Status = tbStatus.valid
     transBlock2.Status = tbStatus.valid
     # Test Equal Transaction Blocks
     self.assertEquals(cmp(transBlock2, transBlock1), 0)
     # Test a Transaction Block with greater Transaction Depth
     transBlock2.TransactionDepth = 10
     self.assertEquals(cmp(transBlock2, transBlock1), 1)
     # Test a Transaction Block with lesser Transaction Depth
     transBlock1.TransactionDepth = 20
     self.assertEquals(cmp(transBlock2, transBlock1), -1)
 def test_journal_transaction_block_build_message(self):
     # Test build_message, returns a TransactionBlockMessage
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     transBlock = TransactionBlock(minfo)
     signingkey = SigObj.generate_signing_key()
     ident = SigObj.generate_identifier(signingkey)
     node = Node(identifier=ident, signingkey=signingkey,
                 address=("localhost", 8800))
     transBlock.sign_from_node(node)
     transBlock.Status = tbStatus.valid
     msg = transBlock.build_message()
     self.assertEquals(msg.MessageType,
                       "/journal.messages.TransactionBlockMessage" +
                       "/TransactionBlock")
     self.assertEquals(msg.TransactionBlock, transBlock)
Exemple #18
0
 def test_journal_transaction_block_build_message(self):
     # Test build_message, returns a TransactionBlockMessage
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     transBlock = TransactionBlock(minfo)
     signingkey = SigObj.generate_signing_key()
     ident = SigObj.generate_identifier(signingkey)
     node = Node(identifier=ident, signingkey=signingkey,
                 address=("localhost", 8800))
     transBlock.sign_from_node(node)
     transBlock.Status = tbStatus.valid
     msg = transBlock.build_message()
     self.assertEquals(msg.MessageType,
                       "/journal.messages.TransactionBlockMessage" +
                       "/TransactionBlock")
     self.assertEquals(msg.TransactionBlock, transBlock)
 def test_journal_transaction_block_dump(self):
     # Test that transactions dump the correct info
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     transBlock = TransactionBlock(minfo)
     signingkey = SigObj.generate_signing_key()
     ident = SigObj.generate_identifier(signingkey)
     node = Node(identifier=ident, signingkey=signingkey,
                 address=("localhost", 8800))
     transBlock.sign_from_node(node)
     transBlock.Status = tbStatus.valid
     tbDic = transBlock.dump()
     self.assertEquals(tbDic["TransactionIDs"], [])
     self.assertEquals(tbDic["TransactionBlockType"], "/TransactionBlock")
     self.assertEquals(tbDic["BlockNum"], 0)
     self.assertIsNotNone(tbDic["Signature"])
     self.assertNotEquals(tbDic["Signature"], "")
Exemple #20
0
 def test_journal_transaction_block_dump(self):
     # Test that transactions dump the correct info
     minfo = {'__SIGNATURE__': 'Test', "BlockNum": 0}
     transBlock = TransactionBlock(minfo)
     signingkey = SigObj.generate_signing_key()
     ident = SigObj.generate_identifier(signingkey)
     node = Node(identifier=ident, signingkey=signingkey,
                 address=("localhost", 8800))
     transBlock.sign_from_node(node)
     transBlock.Status = tbStatus.valid
     tbDic = transBlock.dump()
     self.assertEquals(tbDic["TransactionIDs"], [])
     self.assertEquals(tbDic["TransactionBlockType"], "/TransactionBlock")
     self.assertEquals(tbDic["BlockNum"], 0)
     self.assertIsNotNone(tbDic["Signature"])
     self.assertNotEquals(tbDic["Signature"], "")