tutil: small clean-up re format_satoshis - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit 5afdc14913c464643efe1bf65763e8285d5ac4b6 (DIR) parent 8fa6bd2aac4a289874cf29494081337796016055 (HTM) Author: SomberNight <somber.night@protonmail.com> Date: Sat, 13 Oct 2018 04:21:07 +0200 util: small clean-up re format_satoshis related #4771 Diffstat: M electrum/gui/qt/main_window.py | 2 +- M electrum/tests/test_util.py | 58 +++++++++++-------------------- M electrum/util.py | 7 +++++-- 3 files changed, 27 insertions(+), 40 deletions(-) --- (DIR) diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py t@@ -688,7 +688,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): return text def format_fee_rate(self, fee_rate): - return format_fee_satoshis(fee_rate/1000, self.num_zeros) + ' sat/byte' + return format_fee_satoshis(fee_rate/1000, num_zeros=self.num_zeros) + ' sat/byte' def get_decimal_point(self): return self.decimal_point (DIR) diff --git a/electrum/tests/test_util.py b/electrum/tests/test_util.py t@@ -1,4 +1,6 @@ -from electrum.util import format_satoshis, parse_URI +from decimal import Decimal + +from electrum.util import format_satoshis, format_fee_satoshis, parse_URI from . import SequentialTestCase t@@ -6,56 +8,38 @@ from . import SequentialTestCase class TestUtil(SequentialTestCase): def test_format_satoshis(self): - result = format_satoshis(1234) - expected = "0.00001234" - self.assertEqual(expected, result) + self.assertEqual("0.00001234", format_satoshis(1234)) def test_format_satoshis_negative(self): - result = format_satoshis(-1234) - expected = "-0.00001234" - self.assertEqual(expected, result) + self.assertEqual("-0.00001234", format_satoshis(-1234)) def test_format_fee(self): - result = format_satoshis(1700/1000, 0, 0) - expected = "1.7" - self.assertEqual(expected, result) + self.assertEqual("1.7", format_fee_satoshis(1700/1000)) def test_format_fee_precision(self): - result = format_satoshis(1666/1000, 0, 0, precision=6) - expected = "1.666" - self.assertEqual(expected, result) - - result = format_satoshis(1666/1000, 0, 0, precision=1) - expected = "1.7" - self.assertEqual(expected, result) + self.assertEqual("1.666", + format_fee_satoshis(1666/1000, precision=6)) + self.assertEqual("1.7", + format_fee_satoshis(1666/1000, precision=1)) def test_format_satoshis_whitespaces(self): - result = format_satoshis(12340, whitespaces=True) - expected = " 0.0001234 " - self.assertEqual(expected, result) - - result = format_satoshis(1234, whitespaces=True) - expected = " 0.00001234" - self.assertEqual(expected, result) + self.assertEqual(" 0.0001234 ", + format_satoshis(12340, whitespaces=True)) + self.assertEqual(" 0.00001234", + format_satoshis(1234, whitespaces=True)) def test_format_satoshis_whitespaces_negative(self): - result = format_satoshis(-12340, whitespaces=True) - expected = " -0.0001234 " - self.assertEqual(expected, result) - - result = format_satoshis(-1234, whitespaces=True) - expected = " -0.00001234" - self.assertEqual(expected, result) + self.assertEqual(" -0.0001234 ", + format_satoshis(-12340, whitespaces=True)) + self.assertEqual(" -0.00001234", + format_satoshis(-1234, whitespaces=True)) def test_format_satoshis_diff_positive(self): - result = format_satoshis(1234, is_diff=True) - expected = "+0.00001234" - self.assertEqual(expected, result) + self.assertEqual("+0.00001234", + format_satoshis(1234, is_diff=True)) def test_format_satoshis_diff_negative(self): - result = format_satoshis(-1234, is_diff=True) - expected = "-0.00001234" - self.assertEqual(expected, result) + self.assertEqual("-0.00001234", format_satoshis(-1234, is_diff=True)) def _do_test_parse_URI(self, uri, expected): result = parse_URI(uri) (DIR) diff --git a/electrum/util.py b/electrum/util.py t@@ -540,8 +540,11 @@ FEERATE_PRECISION = 1 # num fractional decimal places for sat/byte fee rates _feerate_quanta = Decimal(10) ** (-FEERATE_PRECISION) -def format_fee_satoshis(fee, num_zeros=0): - return format_satoshis(fee, num_zeros, 0, precision=FEERATE_PRECISION) +def format_fee_satoshis(fee, *, num_zeros=0, precision=None): + if precision is None: + precision = FEERATE_PRECISION + num_zeros = min(num_zeros, FEERATE_PRECISION) # no more zeroes than available prec + return format_satoshis(fee, num_zeros=num_zeros, decimal_point=0, precision=precision) def quantize_feerate(fee):