Ejemplo n.º 1
0
class TransactionTests(TestCase):
    def setUp(self):
        self.transaction = Transaction(PUBLIC_KEY, 'receiver', 5)

    def test_init(self):
        self.assertEqual(self.transaction.sender, PUBLIC_KEY)
        self.assertEqual(self.transaction.receiver, 'receiver')
        self.assertEqual(self.transaction.amount, 5)

    def test_dict(self):
        transaction_dict = {
            'sender': PUBLIC_KEY,
            'receiver': 'receiver',
            'amount': 5
        }
        self.assertEqual(self.transaction.dict, transaction_dict)

    def test_verify_sig_passes(self):
        self.assertTrue(self.transaction.verify_signature(PRIVATE_KEY))

    def test_verify_sig_fails(self):
        rng = Random.new().read
        priv_key = RSA.generate(1024, rng)
        rand_private_key = hexlify(
            priv_key.exportKey(format='DER')).decode('utf8')

        self.assertFalse(self.transaction.verify_signature(rand_private_key))