import unittest from lbrynet.daemon.Daemon import sort_claim_results class ClaimsComparatorTest(unittest.TestCase): def test_sort_claim_results_when_sorted_by_claim_id(self): results = [{"height": 1, "name": "res", "claim_id": "ccc", "nout": 0, "txid": "fdsafa"}, {"height": 1, "name": "res", "claim_id": "aaa", "nout": 0, "txid": "w5tv8uorgt"}, {"height": 1, "name": "res", "claim_id": "bbb", "nout": 0, "txid": "aecfaewcfa"}] self.run_test(results, 'claim_id', ['aaa', 'bbb', 'ccc']) def test_sort_claim_results_when_sorted_by_height(self): results = [{"height": 1, "name": "res", "claim_id": "ccc", "nout": 0, "txid": "aecfaewcfa"}, {"height": 3, "name": "res", "claim_id": "ccc", "nout": 0, "txid": "aecfaewcfa"}, {"height": 2, "name": "res", "claim_id": "ccc", "nout": 0, "txid": "aecfaewcfa"}] self.run_test(results, 'height', [1, 2, 3]) def test_sort_claim_results_when_sorted_by_name(self): results = [{"height": 1, "name": "res1", "claim_id": "ccc", "nout": 0, "txid": "aecfaewcfa"}, {"height": 1, "name": "res3", "claim_id": "ccc", "nout": 0, "txid": "aecfaewcfa"}, {"height": 1, "name": "res2", "claim_id": "ccc", "nout": 0, "txid": "aecfaewcfa"}] self.run_test(results, 'name', ['res1', 'res2', 'res3']) def test_sort_claim_results_when_sorted_by_txid(self): results = [{"height": 1, "name": "res1", "claim_id": "ccc", "nout": 2, "txid": "111"}, {"height": 1, "name": "res1", "claim_id": "ccc", "nout": 1, "txid": "222"}, {"height": 1, "name": "res1", "claim_id": "ccc", "nout": 3, "txid": "333"}] self.run_test(results, 'txid', ['111', '222', '333']) def test_sort_claim_results_when_sorted_by_nout(self): results = [{"height": 1, "name": "res1", "claim_id": "ccc", "nout": 2, "txid": "aecfaewcfa"}, {"height": 1, "name": "res1", "claim_id": "ccc", "nout": 1, "txid": "aecfaewcfa"}, {"height": 1, "name": "res1", "claim_id": "ccc", "nout": 3, "txid": "aecfaewcfa"}] self.run_test(results, 'nout', [1, 2, 3]) def run_test(self, results, field, expected): actual = sort_claim_results(results) self.assertEqual(expected, [r[field] for r in actual]) if __name__ == '__main__': unittest.main()