Example #1
0
def test_success_fetch_validator_confirmation_services(requests_mock):
    result = [
        {
            "id": "be9fbc3b-d4df-43d5-9bea-9882a6dd27f6",
            "created_date": "2020-07-09T22:10:35.312956Z",
            "modified_date": "2020-07-09T22:10:37.393578Z",
            "end": "2020-08-09T22:10:24Z",
            "start": "2020-07-09T22:10:25Z",
            "validator": "51461a75-dd8d-4133-81f4-543a3b054149",
        },
        {
            "id": "e2055637-67ff-4479-aec6-a8095d513862",
            "created_date": "2020-07-09T22:10:35.312956Z",
            "modified_date": "2020-07-09T22:10:37.393578Z",
            "end": "2020-08-09T22:10:24Z",
            "start": "2020-07-09T22:10:25Z",
            "validator": "10308b02-d577-484e-953c-0a2bdb5e3d83",
        },
    ]
    requests_mock.get(
        "http://10.2.3.4:80/validator_confirmation_services",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_validator_confirmation_services()

    assert response == result
Example #2
0
def test_success_fetch_validator_confirmation_services_on_page_2(
        requests_mock):
    results = [
        {
            "id": "5634f7d5-fa93-40c4-8e53-472055f1aa1c",
            "created_date": "2020-09-24T22:15:09.375150Z",
            "modified_date": "2020-09-24T22:15:09.375197Z",
            "end": "2021-01-27T22:15:09.343282Z",
            "start": "2020-09-24T22:15:09.343282Z",
            "validator": "e2a138b0-ebe9-47d2-a146-fb4d9d9ca378",
        },
        {
            "id": "817a91bc-9dca-44d2-92ea-55547660e60e",
            "created_date": "2020-09-24T22:15:30.057923Z",
            "modified_date": "2020-09-24T22:15:30.057980Z",
            "end": "2020-11-30T14:15:29.982900Z",
            "start": "2020-09-24T22:15:29.982900Z",
            "validator": "97a878ac-328a-47b6-ac93-be6deee75d94",
        },
    ]

    address = "10.2.3.4"
    url = f"http://{address}:80/validator_confirmation_services"

    payload = {
        "count": 6,
        "next": f"{url}?limit=2&offset=4",
        "previous": f"{url}?limit=2",
        "results": results,
    }

    requests_mock.get(url, json=payload)
    bank = Bank(address=address)
    response = bank.fetch_validator_confirmation_services(offset=2, limit=2)
    assert response == payload
Example #3
0
def test_success_fetch_banks(requests_mock):
    result = {
        "count":
        1,
        "next":
        None,
        "previous":
        None,
        "results": [{
            "account_number":
            "7977b7f7a6f52bf9ebda93694d9276e9e23049eb40b263799fb2a35fa9316b9b",
            "ip_address": "143.110.141.4",
            "node_identifier":
            "735bfc11f802dbb8365998703539823d751ac5f5f82905143fba8a84d967f29b",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 2,
            "trust": "0.00",
        }],
    }

    requests_mock.get(
        "http://10.2.3.4:80/banks",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_banks()

    assert response == result
Example #4
0
def test_success_fetch_blocks_on_page_2(requests_mock):
    results = [{
        "id": "2bcd53c5-19f9-4226-ab04-3dfb17c3a1fe",
        "created_date": "2020-07-11T18:44:16.518695Z",
        "modified_date": "2020-07-11T18:44:16.518719Z",
        "block_identifier":
        "65ae26192dfb9ec41f88c6d582b374a9b42ab58833e1612452d7a8f685dcd4d5",
        "block": "3ff4ebb0-2b3d-429b-ba90-08133fcdee4e",
        "confirmation_validator": "fcd2dce8-9e4f-4bf1-8dac-cdbaf64e5ce8",
        "primary_validator": "51461a75-dd8d-4133-81f4-543a3b054149",
    }]

    address = "10.2.3.4"
    url = f"http://{address}:80/blocks"

    payload = {
        "count": 3,
        "next": None,
        "previous": f"{url}?limit=2",
        "results": results,
    }

    requests_mock.get(url, json=payload)
    bank = Bank(address=address)
    response = bank.fetch_blocks()
    assert response == payload
Example #5
0
def test_success_patch_trust_level(requests_mock):
    result = {
        "account_number":
        "5e12967707909e62b2bb2036c209085a784fabbc3deccefee70052b6181c8ed8",
        "ip_address": "192.168.1.232",
        "node_identifier":
        "d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1ab4d1",
        "port": "80",
        "protocol": "http",
        "version": "v1.0",
        "default_transaction_fee": "1.0000000000000000",
        "trust": "76.26",
    }
    requests_mock.patch(
        "http://10.2.3.4:80/banks/d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1ab4d1",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.patch_trust_level(
        trust=99.98,
        signature=
        "d11c5f7fcc5f541a94ceee7c73972b21c73912e41f06cc22989863fa22529f55d0b81bc9f95a203191be0259518bdfe073de77d87a7230d37bb14f21666ee40a",
        node_identifier=
        "d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1ab4d1",
    )

    assert response == result
Example #6
0
def test_success_fetch_accounts_on_page_2(requests_mock):
    results = [
        {
            "id": "5a8c7990-393a-4299-ae92-2f096a2c7f43",
            "created_date": "2020-10-08T02:18:07.346849Z",
            "modified_date": "2020-10-08T02:18:07.346914Z",
            "account_number":
            "a37e2836805975f334108b55523634c995bd2a4db610062f404510617e83126f",
            "trust": "0.00",
        },
        {
            "id": "2682963f-06b1-47d7-a2e1-1f8ec6ae98dc",
            "created_date": "2020-10-08T02:39:44.071810Z",
            "modified_date": "2020-10-08T02:39:44.071853Z",
            "account_number":
            "cc8fb4ebbd2b9a98a767e801ac2b0d296ced88b5d3b7d6d6e12e1d2d7635d724",
            "trust": "0.00",
        },
    ]

    address = "10.2.3.4"
    url = f"http://{address}:80/accounts"

    payload = {
        "count": 6,
        "next": f"{url}?limit=2&offset=4",
        "previous": f"{url}?limit=2",
        "results": results,
    }

    requests_mock.get(f"{url}?limit=2&offset=2", json=payload)

    bank = Bank(address=address)
    response = bank.fetch_accounts(offset=2, limit=2)
    assert response == payload
Example #7
0
def test_success_fetch_validator_confirmation_services(requests_mock):
    confirmation_services = [
        {
            "id": "5634f7d5-fa93-40c4-8e53-472055f1aa1c",
            "created_date": "2020-09-24T22:15:09.375150Z",
            "modified_date": "2020-09-24T22:15:09.375197Z",
            "end": "2021-01-27T22:15:09.343282Z",
            "start": "2020-09-24T22:15:09.343282Z",
            "validator": "e2a138b0-ebe9-47d2-a146-fb4d9d9ca378",
        },
        {
            "id": "817a91bc-9dca-44d2-92ea-55547660e60e",
            "created_date": "2020-09-24T22:15:30.057923Z",
            "modified_date": "2020-09-24T22:15:30.057980Z",
            "end": "2020-11-30T14:15:29.982900Z",
            "start": "2020-09-24T22:15:29.982900Z",
            "validator": "97a878ac-328a-47b6-ac93-be6deee75d94",
        },
    ]
    result = {
        "count": 2,
        "next": None,
        "previous": None,
        "results": confirmation_services,
    }

    requests_mock.get(
        "http://10.2.3.4:80/validator_confirmation_services",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_validator_confirmation_services()

    assert response == result
def test_success_fetch_bank_transactions(requests_mock):
    result = [{
        "id":
        "a85a4692-e03d-4419-8b25-813598b367bd",
        "block": {
            "id": "e00c5522-1b73-4a46-bd03-629d446eec19",
            "created_date": "2020-07-14T03:14:36.436771Z",
            "modified_date": "2020-07-14T03:14:36.436796Z",
            "balance_key": "efa253d24ee516fe5ed45bb4e47a3146026e97f766df1",
            "sender": "0cdd4ba04456ca169baca3d66eace869520c62fe8442132908",
            "signature": "a1bbd321ad6d3f74f027de5a2c19457779fe1466708c2ea"
        },
        "amount":
        "12.5000000000000000",
        "recipient":
        "484b3176c63d5f37d808404af1a12c4b9649cd6f6769f35bdf5"
    }]
    requests_mock.get(
        "http://10.2.3.4:80/bank_transactions",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_bank_transactions()
    assert response == result
Example #9
0
def test_success_post_block(requests_mock):
    result = {
        "id":
        "3ff4ebb0-2b3d-429b-ba90-08133fcdee4e",
        "created_date":
        "2020-07-09T21:45:25.909512Z",
        "modified_date":
        "2020-07-09T21:45:25.909557Z",
        "balance_key":
        "ce51f0d9facaa7d3e69657429dd3f9"
        "61ce70077a8efb53dcda508c7c0a19d2e3",
        "sender":
        "0cdd4ba04456ca169baca3d66eace869520c62fe84421329086e03d91a68acdb",
        "signature":
        "ee5a2f2a2f5261c1b633e08dd61182fd"
        "0db5604c853ebd8498f6f28ce8e2ccbbc38093918610ea88a7ad47c7f3192ed95"
        "5d9d1529e7e390013e43f25a5915c0f",
    }

    requests_mock.post("http://10.2.3.4:80/blocks", json=result)

    bank = Bank(address="10.2.3.4")

    response = bank.post_block(
        account_number="0cdd4ba04456ca169baca3d66eace8"
        "69520c62fe84421329086e03d91a68acdb",
        balance_key="ce51f0d9facaa7d3e69657429dd3f961c"
        "e70077a8efb53dcda508c7c0a19d2e3",
        transactions=[
            {
                "amount":
                12.5,
                "recipient":
                "484b3176c63d5f37d808404af1a"
                "12c4b9649cd6f6769f35bdf5a816133623fbc",
            },
            {
                "amount":
                1,
                "recipient":
                "5e12967707909e62b2bb2036c20"
                "9085a784fabbc3deccefee70052b6181c8ed8",
            },
            {
                "amount":
                4,
                "recipient":
                "ad1f8845c6a1abb6011a2a434a0"
                "79a087c460657aad54329a84b406dce8bf314",
            },
        ],
        signature="ee5a2f2a2f5261c1b633e08dd61182fd0db560"
        "4c853ebd8498f6f28ce8e2ccbbc38093918610ea88a7ad47c7f3192ed955d9"
        "d1529e7e390013e43f25a5915c0f",
    )

    assert response == result
Example #10
0
def test_success_fetch_validators_on_page_2(requests_mock):
    results = [
        {
            "account_number":
            "2e86f48216567302527b69eae6c6a188097ed3a9741f43cc3723e570cf47644c",
            "ip_address": "54.183.17.224",
            "node_identifier":
            "2262026a562b0274163158e92e8fbc4d28e519bc5ba8c1cf403703292be84a51",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 1,
            "root_account_file": "https://gist.githubusercontent.com/"
            "buckyroberts/0688f136b6c1332be472a8baf10f78c5/raw/323fcd29672e392be2b934b82ab9eac8d15e840f/alpha-00.json",
            "root_account_file_hash":
            "0f775023bee79884fbd9a90a76c5eacfee38a8ca52735f7ab59dab63a75cbee1",
            "seed_block_identifier": "",
            "daily_confirmation_rate": None,
            "trust": "100.00",
        },
        {
            "account_number":
            "4699a423c455a40feb1d6b90b167584a880659e1bf9adf9954a727d534ff0c16",
            "ip_address": "54.219.178.46",
            "node_identifier":
            "b1b232503b3db3975524faf98674f22c83f4357c3d946431b8a8568715d7e1d9",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 1,
            "root_account_file":
            "http://54.219.178.46/media/root_account_file.json",
            "root_account_file_hash":
            "cc9390cc579dc8a99a1f34c1bea5d54a0f45b27ecee7e38662f0cd853f76744d",
            "seed_block_identifier": "",
            "daily_confirmation_rate": 1,
            "trust": "98.00",
        },
    ]

    address = "10.2.3.4"
    url = f"http://{address}:80/validators"

    payload = {
        "count": 6,
        "next": f"{url}?limit=2&offset=4",
        "previous": f"{url}?limit=2",
        "results": results,
    }

    requests_mock.get(url, json=payload)
    bank = Bank(address=address)
    response = bank.fetch_validators(offset=2, limit=2)
    assert response == payload
Example #11
0
def test_success_fetch_confirmations_blocks(requests_mock):

    blocks = [
        {
            "id": "e7c5c2e0-8ed1-4eb3-abd8-97fa2e5ca8db",
            "created_date": "2020-10-08T02:18:07.908635Z",
            "modified_date": "2020-10-08T02:18:07.908702Z",
            "block_identifier":
            "824614aa97edb391784b17ce6956b70aed31edf741c1858d43ae4d566b2a13ed",
            "block": "c6fc11cf-8948-4d32-96c9-d56caa6d5b24",
            "validator": "e2a138b0-ebe9-47d2-a146-fb4d9d9ca378",
        },
        {
            "id": "78babf4b-74ed-442e-b5ab-7b23345c18f8",
            "created_date": "2020-10-08T02:18:07.998146Z",
            "modified_date": "2020-10-08T02:18:07.998206Z",
            "block_identifier":
            "824614aa97edb391784b17ce6956b70aed31edf741c1858d43ae4d566b2a13ed",
            "block": "c6fc11cf-8948-4d32-96c9-d56caa6d5b24",
            "validator": "97a878ac-328a-47b6-ac93-be6deee75d94",
        },
    ]

    result_page1 = {
        "count": 2,
        "next": "http://10.2.3.4:80/confirmation_blocks?limit=50&offset=1",
        "previous": None,
        "results": [
            blocks[0],
        ],
    }

    result_page2 = {
        "count": 2,
        "next": None,
        "previous": "http://10.2.3.4:80/confirmation_blocks",
        "results": [
            blocks[1],
        ],
    }
    requests_mock.get(
        "http://10.2.3.4:80/confirmation_blocks",
        json=result_page1,
    )
    requests_mock.get(
        "http://10.2.3.4:80/confirmation_blocks?limit=50&offset=1",
        json=result_page2,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_confirmation_blocks()
    assert response == blocks
Example #12
0
def test_success_patch_validator(requests_mock):
    result = {
        "account_number":
        "ad1f8845c6a1abb6011a2a434a079a087c460657aad54329a8"
        "4b406dce8bf314",
        "ip_address":
        "192.168.1.75",
        "node_identifier":
        "3afdf37573f1a511def0bd85553404b7091a76bcd79cdcebb"
        "a1310527b167521",
        "port":
        None,
        "protocol":
        "http",
        "version":
        "v1.0",
        "default_transaction_fee":
        "4.0000000000000000",
        "root_account_file":
        "https://gist.githubusercontent.com/buckyroberts"
        "/519b5cb82a0a5b5d4ae8a2175b722520"
        "/raw/9237deb449e27cab93cb89ea3346ecdfc61fe9ea/0.json",
        "root_account_file_hash":
        "4694e1ee1dcfd8ee5f989e59ae40a9f751812bf5ca"
        "52aca2766b322c4060672b",
        "seed_block_identifier":
        "",
        "daily_confirmation_rate":
        None,
        "trust":
        "76.28",
    }

    requests_mock.patch(
        "http://10.2.3.4:80/validators/d5356888dc9303e44ce52b1e06c3165a7759b9"
        "df1e6a6dfbd33ee1c3df1ab4d1",
        json=result,
    )

    bank = Bank(address="10.2.3.4")

    response = bank.patch_validator(
        node_id="d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1a"
        "b4d1",
        trust=76.28,
        signature="b9106148b9c6d445f6a5fe7bb54b552ac2ff639cb72e2af70f75659"
        "04120dbb2040987c6cad559d7aa3b507c8d475af9291e4faee4930b"
        "324996c7a3c0696805",
    )

    assert response == result
def test_success_connection_requests(requests_mock):
    result = []
    requests_mock.post(
        "http://10.2.3.4:80/connection_requests",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.connection_requests(
        node_id="d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1",
        signature="f41788fe19690a67abe3336d4ca84565c090691efae0e5cdd8bf02e12",
    )

    assert response == result
Example #14
0
def test_success_fetch_blocks(requests_mock):
    result = [{
        "id": "2bcd53c5-19f9-4226-ab04-3dfb17c3a1fe",
        "created_date": "2020-07-11T18:44:16.518695Z",
        "modified_date": "2020-07-11T18:44:16.518719Z",
        "block_identifier":
        "65ae26192dfb9ec41f88c6d582b374a9b42ab58833e1612452d7a8f685dcd4d5",
        "block": "3ff4ebb0-2b3d-429b-ba90-08133fcdee4e",
        "confirmation_validator": "fcd2dce8-9e4f-4bf1-8dac-cdbaf64e5ce8",
        "primary_validator": "51461a75-dd8d-4133-81f4-543a3b054149",
    }]
    requests_mock.get("http://10.2.3.4:80/blocks", json=result)

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_blocks()
    assert response == result
Example #15
0
def test_success_post_upgrade_notice(requests_mock):
    result = [200, {}]

    requests_mock.post(
        "http://10.2.3.4:80/upgrade_notice",
        json=result,
        status_code=200,
    )

    bank = Bank(address="10.2.3.4")
    bank_nid = "banknodeidentifier1234"
    node_id = "validatoridentifier1234"
    signature = "signature"
    response = bank.post_upgrade_notice(bank_nid, node_id, signature)

    assert response == result
def test_success_fetch_accounts(requests_mock):
    result = [{
        "id": "9eca00a5-d925-454c-a8d6-ecbb26ec2f76",
        "created_date": "2020-07-08T02:14:59.307535Z",
        "modified_date": "2020-07-08T02:14:59.307553Z",
        "account_number": "4d2ec91f37bc553bc538e91195669b666e26b2ea3e4e31507e",
        "trust": "75.21"
    }]

    requests_mock.get(
        "http://10.2.3.4:80/accounts",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_accounts()
    assert response == result
Example #17
0
def test_success_fetch_banks_with_page_2(requests_mock):
    results = [
        {
            "account_number":
            "dfddf07ec15cbf363ecb52eedd7133b70b3ec896b488460bcecaba63e8e36be5",
            "ip_address": "143.110.137.54",
            "node_identifier":
            "6dbaff44058e630cb375955c82b0d3bd7bc7e20cad93e74909a8951f747fb8a4",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 1,
            "trust": "100.00",
        },
        {
            "account_number":
            "7977b7f7a6f52bf9ebda93694d9276e9e23049eb40b263799fb2a35fa9316b9b",
            "ip_address": "143.110.141.4",
            "node_identifier":
            "735bfc11f802dbb8365998703539823d751ac5f5f82905143fba8a84d967f29b",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 2,
            "trust": "0.00",
        },
    ]

    address = "10.2.3.4"
    url = f"http://{address}:80/banks"

    payload = {
        "count": 6,
        "next": f"{url}?limit=2&offset=4",
        "previous": f"{url}?limit=2",
        "results": results,
    }

    requests_mock.get(url, json=payload)
    bank = Bank(address=address)
    response = bank.fetch_banks(offset=2, limit=2)
    assert response == payload
Example #18
0
def test_success_fetch_banks(requests_mock):

    banks = [
        {
            "account_number": "dfddf07ec15cbf363ecb52eedd7133b7"
            "0b3ec896b488460bcecaba63e8e36be5",
            "ip_address": "143.110.137.54",
            "node_identifier": "6dbaff44058e630cb375955c82b0d3b"
            "d7bc7e20cad93e74909a8951f747fb8a4",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 1,
            "trust": "100.00",
        },
        {
            "account_number": "7977b7f7a6f52bf9ebda93694d9276e9"
            "e23049eb40b263799fb2a35fa9316b9b",
            "ip_address": "143.110.141.4",
            "node_identifier": "735bfc11f802dbb8365998703539823"
            "d751ac5f5f82905143fba8a84d967f29b",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 2,
            "trust": "0.00",
        },
    ]

    result = {"count": 2, "next": None, "previous": None, "results": banks}

    requests_mock.get(
        "http://10.2.3.4:80/banks",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_banks()

    assert response == result
def test_success_patch_account(requests_mock):
    result = {
        "id": "64426fc5-b3ac-42fb-b75b-d5ccfcdc6872",
        "created_date": "2020-07-14T02:59:22.204580Z",
        "modified_date": "2020-07-21T00:58:01.013685Z",
        "account_number": "0cdd4ba04456ca169baca3d66eace869520c62fe84421329",
        "trust": "99.98"
    }
    requests_mock.patch(
        "http://10.2.3.4:80/accounts/0cdd4ba04456ca169baca3d66eace869520c62",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.patch_account(
        account_number="0cdd4ba04456ca169baca3d66eace869520c62",
        node_id="d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1a",
        trust=99.98,
        signature="f41788fe19690a67abe3336d4ca84565c090691efae0e5cdd8bf02e126",
    )

    assert response == result
Example #20
0
def test_success_fetch_config(requests_mock):
    result = {
        "primary_validator": {
            "account_number":
            "1a105575c681c5c4bbd9e88a90346f356051646dcee254afd5fdc67782cc6e56",
            "ip_address": "20.188.33.93",
            "node_identifier":
            "4a02e9e03ca6f2e64fe8dc675da73e31b8112e435439189012944f0b7adebf50",
            "port": None,
            "protocol": "http",
            "version": "v1.0",
            "default_transaction_fee": 1,
            "root_account_file":
            "http://20.188.33.93/media/root_account_file.json",
            "root_account_file_hash":
            "b2885f94cd099a8c5ba5355ff9cdd69252b4cad2541e32d20152702397722cf5",
            "seed_block_identifier": "",
            "daily_confirmation_rate": 100,
            "trust": "100.00",
        },
        "account_number":
        "5878f25f576eb9d398ab1b6dd8b2e831ad74a58e6d6b8c8bea1c48f69a9db42d",
        "ip_address": "20.188.58.140",
        "node_identifier":
        "d1f994720d89c9d3b300367fdb85a452fd1fbb7d60c2e2707ff059e8df48e081",
        "port": None,
        "protocol": "http",
        "version": "v1.0",
        "default_transaction_fee": 1,
        "node_type": "BANK",
    }
    requests_mock.get(
        "http://10.2.3.4:80/config",
        json=result,
    )
    bank = Bank(address="10.2.3.4")
    response = bank.fetch_config()
    assert response == result
Example #21
0
def test_success_create_validator_confirmation_service(requests_mock):
    result = {
        "id": "2558fd55-e132-4667-8d39-d3b5e8eb9c4d",
        "created_date": "2020-07-10T02:38:44.917554Z",
        "modified_date": "2020-07-10T02:38:44.917601Z",
        "end": "2020-07-09T22:10:25Z",
        "start": "2020-08-09T22:10:25Z",
        "validator": "fcd2dce8-9e4f-4bf1-8dac-cdbaf64e5ce8",
    }
    requests_mock.post(
        "http://10.2.3.4:80/validator_confirmation_services",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.create_validator_confirmation_service(
        msg_start="2020-07-09T22:10:25Z",
        msg_end="2020-07-09T22:10:25Z",
        node_id="d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1a",
        signature="f41788fe19690a67abe3336d4ca84565c090691efae0e5cdd8bf02e126",
    )

    assert response == result
def test_success_fetch_validators(requests_mock):
    result = [{
        "account_number":
        "ad1f8845c6a1abb6011a2a434a079a087c460657aad543",
        "ip_address":
        "192.168.1.74",
        "node_identifier":
        "3afdf37573f1a511def0bd85553404b7091a76bcd79cd",
        "port":
        8000,
        "protocol":
        "http",
        "version":
        "v1.0",
        "default_transaction_fee":
        "4.0000000000000000",
        "root_account_file": ("https://gist.githubusercontent.com/"
                              "buckyroberts/519b5cb82a0a5b5d4ae8a2175b7"
                              "520/raw/9237deb449e27cab93cb89ea3346ecdf1"
                              "fe9ea/0.json"),
        "root_account_file_hash":
        "4694e1ee1dcfd8ee5f989e59ae40a9f75181f",
        "seed_block_identifier":
        "",
        "daily_confirmation_rate":
        None,
        "trust":
        "100.00"
    }]
    requests_mock.get(
        "http://10.2.3.4:80/validators",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_validators()
    assert response == result
Example #23
0
def test_success_fetch_confirmations_blocks_on_page_2(requests_mock):
    results = [
        {
            "id": "e7c5c2e0-8ed1-4eb3-abd8-97fa2e5ca8db",
            "created_date": "2020-10-08T02:18:07.908635Z",
            "modified_date": "2020-10-08T02:18:07.908702Z",
            "block_identifier":
            "824614aa97edb391784b17ce6956b70aed31edf741c1858d43ae4d566b2a13ed",
            "block": "c6fc11cf-8948-4d32-96c9-d56caa6d5b24",
            "validator": "e2a138b0-ebe9-47d2-a146-fb4d9d9ca378",
        },
        {
            "id": "78babf4b-74ed-442e-b5ab-7b23345c18f8",
            "created_date": "2020-10-08T02:18:07.998146Z",
            "modified_date": "2020-10-08T02:18:07.998206Z",
            "block_identifier":
            "824614aa97edb391784b17ce6956b70aed31edf741c1858d43ae4d566b2a13ed",
            "block": "c6fc11cf-8948-4d32-96c9-d56caa6d5b24",
            "validator": "97a878ac-328a-47b6-ac93-be6deee75d94",
        },
    ]

    address = "10.2.3.4"
    url = f"http://{address}:80/confirmation_blocks"

    payload = {
        "count": 6,
        "next": f"{url}?limit=2&offset=4",
        "previous": f"{url}?limit=2",
        "results": results,
    }

    requests_mock.get(url, json=payload)
    bank = Bank(address=address)
    response = bank.fetch_confirmation_blocks(offset=2, limit=2)
    assert response == payload
Example #24
0
def test_success_fetch_accounts(requests_mock):

    accounts = [
        {
            "id": "5a8c7990-393a-4299-ae92-2f096a2c7f43",
            "created_date": "2020-10-08T02:18:07.346849Z",
            "modified_date": "2020-10-08T02:18:07.346914Z",
            "account_number":
            "a37e2836805975f334108b55523634c995bd2a4db610062f404510617e83126f",
            "trust": "0.00",
        },
        {
            "id": "2682963f-06b1-47d7-a2e1-1f8ec6ae98dc",
            "created_date": "2020-10-08T02:39:44.071810Z",
            "modified_date": "2020-10-08T02:39:44.071853Z",
            "account_number":
            "cc8fb4ebbd2b9a98a767e801ac2b0d296ced88b5d3b7d6d6e12e1d2d7635d724",
            "trust": "0.00",
        },
    ]

    result = {
        "count": 2,
        "next": None,
        "previous": None,
        "results": accounts,
    }

    requests_mock.get(
        "http://10.2.3.4:80/accounts",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_accounts()
    assert response == result
Example #25
0
def test_success_fetch_bank_transactions(requests_mock):
    bank_transactions = [
        {
            "id":
            "8d422974-7ca2-4386-a2aa-26ac0cab00b8",
            "block": {
                "id":
                "370b5e8c-03ed-4d72-b649-940e1ec82fca",
                "created_date":
                "2020-11-19T17:55:22.188130Z",
                "modified_date":
                "2020-11-19T17:55:22.188176Z",
                "balance_key":
                "0c10b6bd8f6effc2ed5ffc927363f73ebb81b3f086805d7d57bea416fc9796c6",
                "sender":
                "0d304450eae6b5094240cc58b008066316d9f641878d9af9dd70885f065913a0",
                "signature":
                "743bc0bfcc8db0cd0b736e5cbaf0c5fd1866fd73e805e58cdb2afd3a19"
                "8d53636a5d9d4560ec047a8c8e221da29a0f7b1b20f3bf879e7bb7c281f0890b413e02",
            },
            "amount":
            1,
            "recipient":
            "2e86f48216567302527b69eae6c6a188097ed3a9741f43cc3723e570cf47644c",
        },
        {
            "id":
            "e98c8ce2-d89e-4b72-8e90-61f431a83dd1",
            "block": {
                "id":
                "370b5e8c-03ed-4d72-b649-940e1ec82fca",
                "created_date":
                "2020-11-19T17:55:22.188130Z",
                "modified_date":
                "2020-11-19T17:55:22.188176Z",
                "balance_key":
                "0c10b6bd8f6effc2ed5ffc927363f73ebb81b3f086805d7d57bea416fc9796c6",
                "sender":
                "0d304450eae6b5094240cc58b008066316d9f641878d9af9dd70885f065913a0",
                "signature":
                "743bc0bfcc8db0cd0b736e5cbaf0c5fd1866fd73e805e58cdb2afd3a19"
                "8d53636a5d9d4560ec047a8c8e221da29a0f7b1b20f3bf879e7bb7c281f0890b413e02",
            },
            "amount":
            19600,
            "recipient":
            "82ad4b185c2ac04440c8f1c54854819ac2ea374255e8fecc54a6f28d4fcc4814",
        },
    ]

    result = {
        "count": 2,
        "next": None,
        "previous": None,
        "results": bank_transactions,
    }

    requests_mock.get(
        "http://10.2.3.4:80/bank_transactions",
        json=result,
    )

    bank = Bank(address="10.2.3.4")
    response = bank.fetch_bank_transactions()
    assert response == result
Example #26
0
def test_success_post_invalid_block(requests_mock):
    result = {
        "id": "2bcd53c5-19f9-4226-ab04-3dfb17c3a1fe",
        "created_date": "2020-07-11T18:44:16.518695Z",
        "modified_date": "2020-07-11T18:44:16.518719Z",
        "block_identifier":
        "65ae26192dfb9ec41f88c6d582b374a9b42ab58833e1612452d7a8f685dcd4d5",
        "block": "3ff4ebb0-2b3d-429b-ba90-08133fcdee4e",
        "confirmation_validator": "fcd2dce8-9e4f-4bf1-8dac-cdbaf64e5ce8",
        "primary_validator": "51461a75-dd8d-4133-81f4-543a3b054149",
    }

    requests_mock.post(
        "http://10.2.3.4:80/invalid_blocks",
        json=result,
    )

    bank = Bank(address="10.2.3.4")

    response = bank.post_invalid_block(
        block={
            "account_number":
            "0cdd4ba04456ca169baca3d66eace869520c62fe84421329086e03d91a68acdb",
            "message": {
                "balance_key":
                "ce51f0d9facaa7d3e69657429dd3f961ce70077a8efb53dcda508c7c0a19d2e3",
                "txs": [
                    {
                        "amount":
                        12,
                        "recipient":
                        "484b3176c63d5f37d808404af1a12c4b9649cd6f6769f35bdf5a816133623fbc",
                    },
                    {
                        "amount":
                        1,
                        "recipient":
                        "5e12967707909e62b2bb2036c209085a784fabbc3deccefee70052b6181c8ed8",
                    },
                    {
                        "amount":
                        4,
                        "recipient":
                        "ad1f8845c6a1abb6011a2a434a079a087c460657aad54329a84b406dce8bf314",
                    },
                ],
            },
            "signature":
            "ee5a2f2a2f5261c1b633e08dd61182fd0db5604c853ebd8498f6f28ce8e2ccbbc38093918610ea88a7ad47c7f3192ed955d9d1529e7e390013e43f25a5915c0f",
        },
        block_identifier=
        "65ae26192dfb9ec41f88c6d582b374a9b42ab58833e1612452d7a8f685dcd4d5",
        primary_validator_node_identifier=
        "3afdf37573f1a511def0bd85553404b7091a76bcd79cdcebba1310527b167521",
        node_identifier=
        "59479a31c3b91d96bb7a0b3e07f18d4bf301f1bb0bde05f8d36d9611dcbe7cbf",
        signature=
        "c61ef8067307f8a48979a656699709e415692eb7b7b0083e3cd41da4ff6cb388e7347896b5cacb0a74200390d228b30547f73a72029ebd4ed10482db5e925b0c",
    )

    assert response == result