def test_is_valid_bad_difficulty(self): self.block.difficulty = 10 # Set correct number of leading zeros to prevent pow error and ensure testing difficulty deviation. self.block.hash = "0" * self.block.difficulty with self.assertRaises(DifficultyDeviationError): Block.is_valid(self.previous_block, self.block)
def test_is_valid_bad_pow(self): self.block.hash = "fff" with self.assertRaises(ProofOfWorkError): Block.is_valid(self.previous_block, self.block)
def test_is_valid(self): # Block is valid if no exception is thrown Block.is_valid(self.previous_block, self.block)
def test_is_valid_bad_previous_hash(self): # Set bad previous hash self.block.previous_hash = "Bad" with self.assertRaises(PreviousHashError): Block.is_valid(self.previous_block, self.block)
def test_is_valid_bad_hash(self): self.block.hash = "0" * self.block.difficulty + "dgfsdgfsgdfsgf" with self.assertRaises(HashError): Block.is_valid(self.previous_block, self.block)