mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-04-27 12:39:04 +00:00
![]() We can now selectively runxfail certain tests. This is useful for accepting PRs into trezor-core: 1. trezor-core is going to get a pytest.ini that sets xfail_strict. That means that if an `xfail`ed test actually passes, that will break the test suite. So it will be visible when we implement a feature for which tests exist. 2. To allow PRs to pass the test suite without touching python-trezor directly, we add a new pytest.ini option: run_xfail. This adds a list of markers which will ignore `xfail`. So: 2.1 First, the python-trezor PR marks the tests with the name of the feature. This commit already does that: Lisk tests are marked `@pytest.mark.lisk`, NEMs are `@pytest.mark.nem`, etc. The tests will be also marked with `xfail`, because the feature is not in core yet. 2.2 Then, the trezor-core PR implements the feature, which makes the `xfail`ed tests pass. That breaks the test suite. 2.3 To fix the test suite, the core PR also adds a `run_xfail` to `pytest.ini`: `run_xfail = lisk`. (it can take a list: `run_xfail = lisk nem stellar`) That will make the test suite behave as if the tests are not `xfail`ed. If the feature is implemented correctly, the tests will pass. 2.4 When the PR is accepted to core, the next step should be a PR to python-trezor that removes the `xfail`s. After that, we should also remove the `run_xfail` option, just to be tidy. |
||
---|---|---|
bash_completion.d | ||
docs | ||
tools | ||
trezorlib | ||
vendor | ||
.flake8 | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CHANGELOG.md | ||
COPYING | ||
MANIFEST.in | ||
README.rst | ||
requirements-dev.txt | ||
requirements-optional.txt | ||
requirements.txt | ||
setup.py | ||
tox.ini | ||
trezorctl | ||
trigger-travis.sh |
python-trezor ============= .. image:: https://travis-ci.org/trezor/python-trezor.svg?branch=master :target: https://travis-ci.org/trezor/python-trezor .. image:: https://badges.gitter.im/trezor/community.svg :target: https://gitter.im/trezor/community Python library and commandline client for communicating with TREZOR Hardware Wallet See https://trezor.io for more information Install ------- Linux requirements: .. code:: sudo apt-get install python3-dev cython3 libusb-1.0-0-dev libudev-dev git Linux & Mac Python requirements: .. code:: sudo -H pip3 install setuptools sudo -H pip3 install -r requirements.txt sudo -H pip3 install trezor On FreeBSD you can install the packages: .. code:: pkg install security/py-trezor or build via ports: .. code:: cd /usr/ports/security/py-trezor make install clean Commandline client (trezorctl) --------------------------- The included ``trezorctl`` python script can perform various tasks such as changing setting in the Trezor, signing transactions, retrieving account info and addresses. See the `docs/ <docs/>`_ sub folder for detailed examples and options. NOTE: An older version of the ``trezorctl`` command is `available for Debian Stretch <https://packages.debian.org/en/stretch/python-trezor>`_ (and comes pre-installed on `Tails OS <https://tails.boum.org/>`_). Python Library -------------- You can use this python library to interact with a Bitcoin Trezor and use its capabilities in your application. See examples here in the `tools/ <tools/>`_ sub folder. PIN Entering ------------ When you are asked for PIN, you have to enter scrambled PIN. Follow the numbers shown on TREZOR display and enter the their positions using the numeric keyboard mapping: === === === 7 8 9 4 5 6 1 2 3 === === === Example: your PIN is **1234** and TREZOR is displaying the following: === === === 2 8 3 5 4 6 7 9 1 === === === You have to enter: **3795** Contributing ------------ Python-trezor pulls coins info and protobuf messages from `trezor-common <https://github.com/trezor/trezor-common>`_ repository. If you are developing new features for Trezor, you will want to start there. Once your changes are accepted to ``trezor-common``, you can make a PR against this repository. Don't forget to update the submodule with: .. code:: git submodule update --init --remote Then, rebuild the protobuf messages and get ``coins.json`` by running: .. code:: python3 setup.py prebuild To get support for BTC-like coins, these steps are enough and no further changes to the library are necessary.