From a626d1bf42ba15c594465cb76352225d96efcd0f Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Mon, 12 Feb 2024 15:30:46 +0100 Subject: [PATCH] tests: add test for QEAmount(from_invoice=..) and (m)satsStr properties --- electrum/tests/test_qml_types.py | 57 +++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/electrum/tests/test_qml_types.py b/electrum/tests/test_qml_types.py index d9f0d6207..6200fd1e2 100644 --- a/electrum/tests/test_qml_types.py +++ b/electrum/tests/test_qml_types.py @@ -3,7 +3,9 @@ import tempfile from electrum import SimpleConfig from electrum.gui.qml.qetypes import QEAmount +from electrum.invoices import Invoice, LN_EXPIRY_NEVER from electrum.tests.qt_util import QETestCase, QEventReceiver, qt_test +from electrum.transaction import PartialTxOutput class WalletMock: @@ -15,7 +17,7 @@ class WalletMock: self.contacts = None -class QETestTypes(QETestCase): +class TestTypes(QETestCase): def setUp(self): super().setUp() @@ -34,17 +36,28 @@ class QETestTypes(QETestCase): a.satsInt = 1 self.assertTrue(bool(a_er.received)) self.assertFalse(a.isEmpty) + self.assertEqual('1', a.satsStr) a_er.clear() a.clear() self.assertTrue(a.isEmpty) self.assertTrue(bool(a_er.received)) + self.assertEqual('0', a.satsStr) + a.clear() a_er.clear() a.isMax = True self.assertTrue(a.isMax) self.assertFalse(a.isEmpty) self.assertTrue(bool(a_er.received)) + self.assertEqual('0', a.satsStr) + + a.clear() + a_er.clear() + a.msatsInt = 1 + self.assertTrue(bool(a_er.received)) + self.assertFalse(a.isEmpty) + self.assertEqual('1', a.msatsStr) @qt_test def test_qeamount_copy(self): @@ -83,3 +96,45 @@ class QETestTypes(QETestCase): self.assertFalse(t.isEmpty) self.assertTrue(t.isMax) self.assertEqual(1, len(t_er.received)) + + @qt_test + def test_qeamount_frominvoice(self): + amount_sat = 10_000 + outputs = [PartialTxOutput.from_address_and_value('bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293', amount_sat)] + invoice = Invoice( + amount_msat=amount_sat * 1000, + message="mymsg", + time=1692716965, + exp=LN_EXPIRY_NEVER, + outputs=outputs, + bip70=None, + height=0, + lightning_invoice=None, + ) + a = QEAmount(from_invoice=invoice) + self.assertEqual(10_000, a.satsInt) + self.assertEqual(10_000_000, a.msatsInt) + self.assertFalse(a.isMax) + + outputs = [PartialTxOutput.from_address_and_value('bc1qj3zx2zc4rpv3npzmznxhdxzn0wm7pzqp8p2293', '!')] + invoice = Invoice( + amount_msat='!', + message="mymsg", + time=1692716965, + exp=LN_EXPIRY_NEVER, + outputs=outputs, + bip70=None, + height=0, + lightning_invoice=None, + ) + a = QEAmount(from_invoice=invoice) + self.assertTrue(a.isMax) + self.assertEqual(0, a.satsInt) + self.assertEqual(0, a.msatsInt) + + bolt11 = 'lnbc20m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqsfpp3qjmp7lwpagxun9pygexvgpjdc4jdj85fr9yq20q82gphp2nflc7jtzrcazrra7wwgzxqc8u7754cdlpfrmccae92qgzqvzq2ps8pqqqqqqpqqqqq9qqqvpeuqafqxu92d8lr6fvg0r5gv0heeeqgcrqlnm6jhphu9y00rrhy4grqszsvpcgpy9qqqqqqgqqqqq7qqzqj9n4evl6mr5aj9f58zp6fyjzup6ywn3x6sk8akg5v4tgn2q8g4fhx05wf6juaxu9760yp46454gpg5mtzgerlzezqcqvjnhjh8z3g2qqdhhwkj' + invoice = Invoice.from_bech32(bolt11) + a = QEAmount(from_invoice=invoice) + self.assertEqual(2_000_000, a.satsInt) + self.assertEqual(2_000_000_000, a.msatsInt) + self.assertFalse(a.isMax)