From fa46b4633f94a3404427c3435d69f9bb85716825 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Thu, 8 Feb 2024 13:51:42 +0100 Subject: [PATCH] tests: payment_identifier: check multiline outputs exist, are correct number and type --- electrum/tests/test_payment_identifier.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/electrum/tests/test_payment_identifier.py b/electrum/tests/test_payment_identifier.py index a06ea34d0..9310d9a4f 100644 --- a/electrum/tests/test_payment_identifier.py +++ b/electrum/tests/test_payment_identifier.py @@ -3,6 +3,7 @@ from electrum.payment_identifier import (maybe_extract_lightning_payment_identif PaymentIdentifierType) from . import ElectrumTestCase +from ..transaction import PartialTxOutput class WalletMock: @@ -156,6 +157,9 @@ class TestPaymentIdentifier(ElectrumTestCase): self.assertTrue(pi.is_valid()) self.assertTrue(pi.is_multiline()) self.assertFalse(pi.is_multiline_max()) + self.assertIsNotNone(pi.multiline_outputs) + self.assertEqual(2, len(pi.multiline_outputs)) + self.assertTrue(all(lambda x: isinstance(x, PartialTxOutput) for x in pi.multiline_outputs)) pi_str = '\n'.join([ 'bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293,0.01', @@ -166,6 +170,22 @@ class TestPaymentIdentifier(ElectrumTestCase): self.assertTrue(pi.is_valid()) self.assertTrue(pi.is_multiline()) self.assertTrue(pi.is_multiline_max()) + self.assertIsNotNone(pi.multiline_outputs) + self.assertEqual(3, len(pi.multiline_outputs)) + self.assertTrue(all(lambda x: isinstance(x, PartialTxOutput) for x in pi.multiline_outputs)) + + pi_str = '\n'.join([ + 'bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293,0.01', + 'bc1q66ex4c3vek4cdmrfjxtssmtguvs3r30pf42jpj,2!', + 'bc1qy7ps80x5csdqpfcekn97qfljxtg2lrya8826ds,3!', + ]) + pi = PaymentIdentifier(self.wallet, pi_str) + self.assertTrue(pi.is_valid()) + self.assertTrue(pi.is_multiline()) + self.assertTrue(pi.is_multiline_max()) + self.assertIsNotNone(pi.multiline_outputs) + self.assertEqual(3, len(pi.multiline_outputs)) + self.assertTrue(all(lambda x: isinstance(x, PartialTxOutput) for x in pi.multiline_outputs)) pi_str = '\n'.join([ 'bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293,0.01', @@ -174,6 +194,9 @@ class TestPaymentIdentifier(ElectrumTestCase): pi = PaymentIdentifier(self.wallet, pi_str) self.assertTrue(pi.is_valid()) self.assertTrue(pi.is_multiline()) + self.assertIsNotNone(pi.multiline_outputs) + self.assertEqual(2, len(pi.multiline_outputs)) + self.assertTrue(all(lambda x: isinstance(x, PartialTxOutput) for x in pi.multiline_outputs)) def test_spk(self): address = 'bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293'