bootloader/snapshot/test_extract_rows.py

import unittest

from extract import delegation_row, passport_record


class PassportRecordTests(unittest.TestCase):
    def test_builds_record_from_nickname_and_nft_info(self):
        info = {"access": {"owner": "bostrom1owner"},
                "info": {"extension": {"trait": "x"}, "token_uri": "ipfs://abc"}}
        rec = passport_record("42", info)
        self.assertEqual(rec, {
            "nickname": "42",
            "owner": "bostrom1owner",
            "extension": {"trait": "x"},
            "token_uri": "ipfs://abc",
        })

    def test_missing_extension_and_token_uri_become_none(self):
        info = {"access": {"owner": "bostrom1owner"}, "info": {}}
        rec = passport_record("7", info)
        self.assertIsNone(rec["extension"])
        self.assertIsNone(rec["token_uri"])


class DelegationRowTests(unittest.TestCase):
    def test_row_shape_matches_csv_header_order(self):
        d = {"delegation": {"delegator_address": "bostrom1del", "shares": "1000.0"},
             "balance": {"amount": "999"}}
        self.assertEqual(
            delegation_row(d, "bostromvaloper1val"),
            ["bostrom1del", "bostromvaloper1val", "1000.0", "999"],
        )

    def test_validator_address_comes_from_the_argument_not_the_delegation(self):
        d = {"delegation": {"delegator_address": "bostrom1del", "shares": "1"},
             "balance": {"amount": "1"}}
        row = delegation_row(d, "bostromvaloper1other")
        self.assertEqual(row[1], "bostromvaloper1other")


if __name__ == "__main__":
    unittest.main()

Graph