1
0

qml: refactor invoice amount checks, msat precision for lightning.

add qeconfig unit tests for conversion methods.
This commit is contained in:
Sander van Grieken
2025-11-25 12:31:01 +01:00
parent 0f2a41e078
commit 93c9dd9d12
3 changed files with 93 additions and 51 deletions

View File

@@ -0,0 +1,66 @@
from electrum import SimpleConfig
from electrum.gui.qml.qeconfig import QEConfig
from tests.qt_util import QETestCase, qt_test
class TestConfig(QETestCase):
@classmethod
def setUpClass(cls):
QEConfig(SimpleConfig())
def setUp(self):
super().setUp()
self.q: QEConfig = QEConfig.instance
# raise Exception() # NOTE: exceptions in setUp() will block the test
@qt_test
def test_satstounits(self):
self.q.config.BTC_AMOUNTS_DECIMAL_POINT = 5
self.assertEqual(self.q.satsToUnits(100_000), 1.0)
self.assertEqual(self.q.satsToUnits(1), 0.00001)
self.assertEqual(self.q.satsToUnits(0.001), 0.00000001)
@qt_test
def test_unitstosats(self):
qa = self.q.unitsToSats('')
self.assertTrue(qa.isEmpty)
qa = self.q.unitsToSats('0')
self.assertTrue(qa.isEmpty)
qa = self.q.unitsToSats('0.000')
self.assertTrue(qa.isEmpty)
self.q.config.BTC_AMOUNTS_DECIMAL_POINT = 5
qa = self.q.unitsToSats('1')
self.assertFalse(qa.isEmpty)
self.assertEqual(qa.satsInt, 100_000)
self.assertEqual(qa.msatsInt, 100_000_000)
qa = self.q.unitsToSats('1.001')
self.assertFalse(qa.isEmpty)
self.assertEqual(qa.satsInt, 100_100)
self.assertEqual(qa.msatsInt, 100_100_000)
qa = self.q.unitsToSats('1.000001')
self.assertFalse(qa.isEmpty)
self.assertEqual(qa.satsInt, 100_000)
self.assertEqual(qa.msatsInt, 100_000_100)
self.q.config.BTC_AMOUNTS_DECIMAL_POINT = 0
qa = self.q.unitsToSats('1.001')
self.assertFalse(qa.isEmpty)
self.assertEqual(qa.satsInt, 1)
self.assertEqual(qa.msatsInt, 1001)
qa = self.q.unitsToSats('1.0001') # outside msat precision
self.assertFalse(qa.isEmpty)
self.assertEqual(qa.satsInt, 1)
self.assertEqual(qa.msatsInt, 1000)
self.q.config.BTC_AMOUNTS_DECIMAL_POINT = 8
qa = self.q.unitsToSats('0.00000001001')
self.assertFalse(qa.isEmpty)
self.assertEqual(qa.satsInt, 1)
self.assertEqual(qa.msatsInt, 1001)