Browse Source

util: small clean-up re format_satoshis

related #4771
3.3.3.1
SomberNight 6 years ago
parent
commit
5afdc14913
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 2
      electrum/gui/qt/main_window.py
  2. 58
      electrum/tests/test_util.py
  3. 7
      electrum/util.py

2
electrum/gui/qt/main_window.py

@ -688,7 +688,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
return text return text
def format_fee_rate(self, fee_rate): 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): def get_decimal_point(self):
return self.decimal_point return self.decimal_point

58
electrum/tests/test_util.py

@ -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 from . import SequentialTestCase
@ -6,56 +8,38 @@ from . import SequentialTestCase
class TestUtil(SequentialTestCase): class TestUtil(SequentialTestCase):
def test_format_satoshis(self): def test_format_satoshis(self):
result = format_satoshis(1234) self.assertEqual("0.00001234", format_satoshis(1234))
expected = "0.00001234"
self.assertEqual(expected, result)
def test_format_satoshis_negative(self): def test_format_satoshis_negative(self):
result = format_satoshis(-1234) self.assertEqual("-0.00001234", format_satoshis(-1234))
expected = "-0.00001234"
self.assertEqual(expected, result)
def test_format_fee(self): def test_format_fee(self):
result = format_satoshis(1700/1000, 0, 0) self.assertEqual("1.7", format_fee_satoshis(1700/1000))
expected = "1.7"
self.assertEqual(expected, result)
def test_format_fee_precision(self): def test_format_fee_precision(self):
result = format_satoshis(1666/1000, 0, 0, precision=6) self.assertEqual("1.666",
expected = "1.666" format_fee_satoshis(1666/1000, precision=6))
self.assertEqual(expected, result) self.assertEqual("1.7",
format_fee_satoshis(1666/1000, precision=1))
result = format_satoshis(1666/1000, 0, 0, precision=1)
expected = "1.7"
self.assertEqual(expected, result)
def test_format_satoshis_whitespaces(self): def test_format_satoshis_whitespaces(self):
result = format_satoshis(12340, whitespaces=True) self.assertEqual(" 0.0001234 ",
expected = " 0.0001234 " format_satoshis(12340, whitespaces=True))
self.assertEqual(expected, result) self.assertEqual(" 0.00001234",
format_satoshis(1234, whitespaces=True))
result = format_satoshis(1234, whitespaces=True)
expected = " 0.00001234"
self.assertEqual(expected, result)
def test_format_satoshis_whitespaces_negative(self): def test_format_satoshis_whitespaces_negative(self):
result = format_satoshis(-12340, whitespaces=True) self.assertEqual(" -0.0001234 ",
expected = " -0.0001234 " format_satoshis(-12340, whitespaces=True))
self.assertEqual(expected, result) self.assertEqual(" -0.00001234",
format_satoshis(-1234, whitespaces=True))
result = format_satoshis(-1234, whitespaces=True)
expected = " -0.00001234"
self.assertEqual(expected, result)
def test_format_satoshis_diff_positive(self): def test_format_satoshis_diff_positive(self):
result = format_satoshis(1234, is_diff=True) self.assertEqual("+0.00001234",
expected = "+0.00001234" format_satoshis(1234, is_diff=True))
self.assertEqual(expected, result)
def test_format_satoshis_diff_negative(self): def test_format_satoshis_diff_negative(self):
result = format_satoshis(-1234, is_diff=True) self.assertEqual("-0.00001234", format_satoshis(-1234, is_diff=True))
expected = "-0.00001234"
self.assertEqual(expected, result)
def _do_test_parse_URI(self, uri, expected): def _do_test_parse_URI(self, uri, expected):
result = parse_URI(uri) result = parse_URI(uri)

7
electrum/util.py

@ -540,8 +540,11 @@ FEERATE_PRECISION = 1 # num fractional decimal places for sat/byte fee rates
_feerate_quanta = Decimal(10) ** (-FEERATE_PRECISION) _feerate_quanta = Decimal(10) ** (-FEERATE_PRECISION)
def format_fee_satoshis(fee, num_zeros=0): def format_fee_satoshis(fee, *, num_zeros=0, precision=None):
return format_satoshis(fee, num_zeros, 0, precision=FEERATE_PRECISION) 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): def quantize_feerate(fee):

Loading…
Cancel
Save