Skip to content

Commit

Permalink
feat(tests): add device tests for btc.get_descriptor
Browse files Browse the repository at this point in the history
  • Loading branch information
prusnak committed Jan 8, 2021
1 parent 8e36b23 commit 20bab30
Show file tree
Hide file tree
Showing 2 changed files with 149 additions and 0 deletions.
137 changes: 137 additions & 0 deletions tests/device_tests/test_descriptors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# This file is part of the Trezor project.
#
# Copyright (C) 2012-2019 SatoshiLabs and contributors
#
# This library is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License version 3
# as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the License along with this library.
# If not, see <https://www.gnu.org/licenses/lgpl-3.0.html>.

import pytest

from trezorlib import messages
from trezorlib.cli import btc

VECTORS_DESCRIPTORS = ( # coin, account, script_type, descriptors
(
"Bitcoin",
0,
messages.InputScriptType.SPENDADDRESS,
(
"pkh([5c9e228d/44'/0'/0']xpub6BiVtCpG9fQPxnPmHXG8PhtzQdWC2Su4qWu6XW9tpWFYhxydCLJGrWBJZ5H6qTAHdPQ7pQhtpjiYZVZARo14qHiay2fvrX996oEP42u8wZy/0/*)",
"pkh([5c9e228d/44'/0'/0']xpub6BiVtCpG9fQPxnPmHXG8PhtzQdWC2Su4qWu6XW9tpWFYhxydCLJGrWBJZ5H6qTAHdPQ7pQhtpjiYZVZARo14qHiay2fvrX996oEP42u8wZy/1/*)",
),
),
(
"Bitcoin",
1,
messages.InputScriptType.SPENDADDRESS,
(
"pkh([5c9e228d/44'/0'/1']xpub6BiVtCpG9fQQ1EW99bMSYwySbPWvzTFRQZCFgTmV3samLSZAYU7C3f4Je9vkNh7h1GAWi5Fn93BwoGBy9EAXbWTTgTnVKAbthHpxM1fXVRL/0/*)",
"pkh([5c9e228d/44'/0'/1']xpub6BiVtCpG9fQQ1EW99bMSYwySbPWvzTFRQZCFgTmV3samLSZAYU7C3f4Je9vkNh7h1GAWi5Fn93BwoGBy9EAXbWTTgTnVKAbthHpxM1fXVRL/1/*)",
),
),
(
"Testnet",
0,
messages.InputScriptType.SPENDADDRESS,
(
"pkh([5c9e228d/44'/1'/0']tpubDDKn3FtHc74CaRrRbi1WFdJNaaenZkDWqq9NsEhcafnDZ4VuKeuLG2aKHm5SuwuLgAhRkkfHqcCxpnVNSrs5kJYZXwa6Ud431VnevzzzK3U/0/*)",
"pkh([5c9e228d/44'/1'/0']tpubDDKn3FtHc74CaRrRbi1WFdJNaaenZkDWqq9NsEhcafnDZ4VuKeuLG2aKHm5SuwuLgAhRkkfHqcCxpnVNSrs5kJYZXwa6Ud431VnevzzzK3U/1/*)",
),
),
(
"Testnet",
1,
messages.InputScriptType.SPENDADDRESS,
(
"pkh([5c9e228d/44'/1'/1']tpubDDKn3FtHc74CcBfxJ3zdSNnRacuggmGwv3KEZLJP2LAuqc3HhsQR5ZAVudcQzezzXs7T6QrDtoJJYvgyDUJ9vgWx3Y7Et4Ats1Q25U1LXvU/0/*)",
"pkh([5c9e228d/44'/1'/1']tpubDDKn3FtHc74CcBfxJ3zdSNnRacuggmGwv3KEZLJP2LAuqc3HhsQR5ZAVudcQzezzXs7T6QrDtoJJYvgyDUJ9vgWx3Y7Et4Ats1Q25U1LXvU/1/*)",
),
),
(
"Bitcoin",
0,
messages.InputScriptType.SPENDP2SHWITNESS,
(
"sh(wpkh([5c9e228d/49'/0'/0']xpub6CVKsQYXc9awxgV1tWbG4foDvdcnieK2JkbpPEBKB5WwAPKBZ1mstLbKVB4ov7QzxzjaxNK6EfmNY5Jsk2cG26EVcEkycGW4tchT2dyUhrx/0/*))",
"sh(wpkh([5c9e228d/49'/0'/0']xpub6CVKsQYXc9awxgV1tWbG4foDvdcnieK2JkbpPEBKB5WwAPKBZ1mstLbKVB4ov7QzxzjaxNK6EfmNY5Jsk2cG26EVcEkycGW4tchT2dyUhrx/1/*))",
),
),
(
"Bitcoin",
1,
messages.InputScriptType.SPENDP2SHWITNESS,
(
"sh(wpkh([5c9e228d/49'/0'/1']xpub6CVKsQYXc9ax22ig3KAZMRiJL1xT9Me1sFX3t34mnVVzr6FkciU74qk7AqBkePQ2sM9pKeWp88KfPT2qcVQ19ykqGHMDioJhwywGuJ96Xt8/0/*))",
"sh(wpkh([5c9e228d/49'/0'/1']xpub6CVKsQYXc9ax22ig3KAZMRiJL1xT9Me1sFX3t34mnVVzr6FkciU74qk7AqBkePQ2sM9pKeWp88KfPT2qcVQ19ykqGHMDioJhwywGuJ96Xt8/1/*))",
),
),
(
"Testnet",
0,
messages.InputScriptType.SPENDP2SHWITNESS,
(
"sh(wpkh([5c9e228d/49'/1'/0']tpubDCHRnuvE95JrpEVTUmr36sK3K9ADf3s3aztpXzL8coBeCTE8cHV8PjxS6SjWJM3GfPn798gyEa3dRPgjoUDSuNfuC9xz4PHznwKEk2XL7X1/0/*))",
"sh(wpkh([5c9e228d/49'/1'/0']tpubDCHRnuvE95JrpEVTUmr36sK3K9ADf3s3aztpXzL8coBeCTE8cHV8PjxS6SjWJM3GfPn798gyEa3dRPgjoUDSuNfuC9xz4PHznwKEk2XL7X1/1/*))",
),
),
(
"Testnet",
1,
messages.InputScriptType.SPENDP2SHWITNESS,
(
"sh(wpkh([5c9e228d/49'/1'/1']tpubDCHRnuvE95Jrs9NkLaZwKNdoHBSoCRge6wKunXyxnspvLpx3aZbJcScTnTdsEqT6uFfWdMvBmLs3jhnkBiE7ob3xVQPV8ngDPYAMs93X9xv/0/*))",
"sh(wpkh([5c9e228d/49'/1'/1']tpubDCHRnuvE95Jrs9NkLaZwKNdoHBSoCRge6wKunXyxnspvLpx3aZbJcScTnTdsEqT6uFfWdMvBmLs3jhnkBiE7ob3xVQPV8ngDPYAMs93X9xv/1/*))",
),
),
(
"Bitcoin",
0,
messages.InputScriptType.SPENDWITNESS,
(
"wpkh([5c9e228d/84'/0'/0']xpub6DDUPHpUo4pcy43iJeZjbSVWGav1SMMmuWdMHiGtkK8rhKmfbomtkwW6GKs1GGAKehT6QRocrmda3WWxXawpjmwaUHfFRXuKrXSapdckEYF/0/*)",
"wpkh([5c9e228d/84'/0'/0']xpub6DDUPHpUo4pcy43iJeZjbSVWGav1SMMmuWdMHiGtkK8rhKmfbomtkwW6GKs1GGAKehT6QRocrmda3WWxXawpjmwaUHfFRXuKrXSapdckEYF/1/*)",
),
),
(
"Bitcoin",
1,
messages.InputScriptType.SPENDWITNESS,
(
"wpkh([5c9e228d/84'/0'/1']xpub6DDUPHpUo4pd1hyVtRaknvZvCgdPdEDMKx3bB5UFcx73pEHRDVK4rwEZUgeUbVuYWGMNLvuBHp5WeyPevN2Gv7m9FnLHQE6XaKNRPZcYcHH/0/*)",
"wpkh([5c9e228d/84'/0'/1']xpub6DDUPHpUo4pd1hyVtRaknvZvCgdPdEDMKx3bB5UFcx73pEHRDVK4rwEZUgeUbVuYWGMNLvuBHp5WeyPevN2Gv7m9FnLHQE6XaKNRPZcYcHH/1/*)",
),
),
(
"Testnet",
0,
messages.InputScriptType.SPENDWITNESS,
(
"wpkh([5c9e228d/84'/1'/0']tpubDCZB6sR48s4T5Cr8qHUYSZEFCQMMHRg8AoVKVmvcAP5bRw7ArDKeoNwKAJujV3xCPkBvXH5ejSgbgyN6kREmF7sMd41NdbuHa8n1DZNxSMg/0/*)",
"wpkh([5c9e228d/84'/1'/0']tpubDCZB6sR48s4T5Cr8qHUYSZEFCQMMHRg8AoVKVmvcAP5bRw7ArDKeoNwKAJujV3xCPkBvXH5ejSgbgyN6kREmF7sMd41NdbuHa8n1DZNxSMg/1/*)",
),
),
(
"Testnet",
1,
messages.InputScriptType.SPENDWITNESS,
(
"wpkh([5c9e228d/84'/1'/1']tpubDCZB6sR48s4T6xoXqaYxScvf23kmQvg5QpyFkYnDBjsmviKHLSG9s6cp593Exg87tuMjXXMWDvBRXnJtzppcQf8Z8HdJP1rothfxm4qnPXo/0/*)",
"wpkh([5c9e228d/84'/1'/1']tpubDCZB6sR48s4T6xoXqaYxScvf23kmQvg5QpyFkYnDBjsmviKHLSG9s6cp593Exg87tuMjXXMWDvBRXnJtzppcQf8Z8HdJP1rothfxm4qnPXo/1/*)",
),
),
)


@pytest.mark.parametrize("coin, account, script_type, descriptors", VECTORS_DESCRIPTORS)
def test_descriptors(client, coin, account, script_type, descriptors):
res = btc._get_descriptor(client, coin, account, script_type, show_display=True)
assert res == descriptors
12 changes: 12 additions & 0 deletions tests/ui_tests/fixtures.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,18 @@
"test_basic.py-test_device_id_same": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586",
"test_basic.py-test_features": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586",
"test_basic.py-test_ping": "5a80508a71a9ef64f94762b07636f90e464832f0f4a3102af8fa1a8c69e94586",
"test_descriptors.py::test_descriptors[Bitcoin-0-0-descriptors0]": "5697fa209afd5912bc3b2351cff23ea42b40acafcb8ae4e60453c30cebd8b6f0",
"test_descriptors.py::test_descriptors[Bitcoin-0-3-descriptors8]": "ceca261463a1f89bf261f4df6dbd20f9f21d7331cf26c2476aa08e0518220426",
"test_descriptors.py::test_descriptors[Bitcoin-0-4-descriptors4]": "51bf3bb9aa346ca21071f6f21c180687b2f11c13157815981ecf83ab41fcf5f4",
"test_descriptors.py::test_descriptors[Bitcoin-1-0-descriptors1]": "9f3c84bebc643d0753f7a3c4a802b66775396b1aeded6ac446caa609634fe61d",
"test_descriptors.py::test_descriptors[Bitcoin-1-3-descriptors9]": "75496fefe672c65965daed2a750c45739e8f5bbbe8bd2b96fee59ad567735bc2",
"test_descriptors.py::test_descriptors[Bitcoin-1-4-descriptors5]": "464a24412001969ad9bd3065d350c90d037e66539d2796e2889a15244d1f14a0",
"test_descriptors.py::test_descriptors[Testnet-0-0-descriptors2]": "d1293dfb2f7cc6af51d0bb42a32e92b235a169a94fc666af87d6d14f4b3d955d",
"test_descriptors.py::test_descriptors[Testnet-0-3-descriptors10]": "3fe4d10bc3ffb08321fc42f6b8556dcabd2ac59305a18f3acdbb8f7621edd572",
"test_descriptors.py::test_descriptors[Testnet-0-4-descriptors6]": "a119d6a97836318a790b945a8655861e7149ac22169a2fcc6e417199db5af193",
"test_descriptors.py::test_descriptors[Testnet-1-0-descriptors3]": "2597e8d401e4c5731dca10314e2ab1f07badadd903f89083acc21317ce441c01",
"test_descriptors.py::test_descriptors[Testnet-1-3-descriptors11]": "bf750821ac24d7ca5746c32fb7bf11b3f1379ad646dd6856ff429fe36b17b84e",
"test_descriptors.py::test_descriptors[Testnet-1-4-descriptors7]": "52f0e74bcf51a1df54ea4363b03ba77ff4d81cc1bca13d53ae45c50b802db443",
"test_msg_applysettings.py-test_apply_homescreen_toif": "408bdb69368ebdf1d299c6d43c1571f86cb1a0f1f606c5badd2f05ce7731f121",
"test_msg_applysettings.py-test_apply_settings": "8f9f6013bb8a44fda279e9c7d091328fd7ccb39222a02bee701918528355083a",
"test_msg_applysettings.py-test_apply_settings_passphrase": "40de0143b32b5d06ece43d47be27bb91499f0c2417754ddb8e9e03ff41a7f6d4",
Expand Down

0 comments on commit 20bab30

Please sign in to comment.