mirror of
https://git.wownero.com/lza_menace/wownero-python.git
synced 2024-08-15 03:25:25 +00:00
50 lines
2 KiB
Python
50 lines
2 KiB
Python
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, Transaction, _ByHeight
|
|
|
|
class FiltersTestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.tx1 = Transaction(
|
|
timestamp=datetime(2018, 1, 29, 15, 0, 25),
|
|
height=1087606,
|
|
hash='a0b876ebcf7c1d499712d84cedec836f9d50b608bb22d6cb49fd2feae3ffed14',
|
|
fee=Decimal('0.00352891'))
|
|
self.pm1 = IncomingPayment(
|
|
amount=Decimal('1'),
|
|
local_address=address('Bf6ngv7q2TBWup13nEm9AjZ36gLE6i4QCaZ7XScZUKDUeGbYEHmPRdegKGwLT8tBBK7P6L32RELNzCR6QzNFkmogDjvypyV'),
|
|
payment_id=PaymentID('0166d8da6c0045c51273dd65d6f63734beb8a84e0545a185b2cfd053fced9f5d'),
|
|
transaction=self.tx1)
|
|
|
|
def test_hash(self):
|
|
self.assertIn(
|
|
'a0b876ebcf7c1d499712d84cedec836f9d50b608bb22d6cb49fd2feae3ffed14',
|
|
repr(self.tx1))
|
|
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)
|
|
|