Sort payments by height (descending) and mempool on top

This commit is contained in:
Michał Sałaban 2018-10-19 01:26:15 +02:00
parent 3edb981078
commit 91c720ecee
2 changed files with 58 additions and 2 deletions

View file

@ -1,10 +1,12 @@
from datetime import datetime
from decimal import Decimal
from operator import attrgetter
import random
import unittest
from monero.address import address
from monero.numbers import PaymentID
from monero.transaction import IncomingPayment, OutgoingPayment, Transaction
from monero.transaction import IncomingPayment, OutgoingPayment, Transaction, _ByHeight
class FiltersTestCase(unittest.TestCase):
def setUp(self):
@ -26,3 +28,23 @@ class FiltersTestCase(unittest.TestCase):
self.assertIn(
'a0b876ebcf7c1d499712d84cedec836f9d50b608bb22d6cb49fd2feae3ffed14',
repr(self.pm1))
class SortingTestCase(unittest.TestCase):
def test_sorting(self):
pmts = [
IncomingPayment(transaction=Transaction(height=10)),
IncomingPayment(transaction=Transaction(height=12)),
IncomingPayment(transaction=Transaction(height=13)),
IncomingPayment(transaction=Transaction(height=None)),
IncomingPayment(transaction=Transaction(height=100)),
IncomingPayment(transaction=Transaction(height=None)),
IncomingPayment(transaction=Transaction(height=1))
]
for i in range(1680): # 1/3 of possible permutations
sorted_pmts = sorted(pmts, key=_ByHeight)
self.assertEqual(
list(map(attrgetter('height'), map(attrgetter('transaction'), sorted_pmts))),
[None, None, 100, 13, 12, 10, 1])
random.shuffle(pmts)