def test_sealing_linked_block_sets_hashes_correctly(self): block1 = Block() block1.messages = self.get_messages("first", "second", "third") block1.seal() block2 = Block() block2.messages = self.get_messages("fourth", "fifth") block2.link(block1) block2.seal() self.assertEqual(self.block_hash(block2), block2.hash) self.assertEqual(block2.prev_hash, block1.hash)
def test_message_tampering_invalidates_block(self): block = Block() block.messages = self.get_messages("first", "second", "third", "fourth", "fifth") block.messages[1].data = "changed" self.assertRaises(InvalidBlock, block.validate)
def test_sealing_unlinked_block_sets_hashes_correctly(self): block = Block() block.messages = self.get_messages("first", "second") block.seal() self.assertEqual(self.block_hash(block), block.hash)