1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-30 03:18:20 +00:00
Commit Graph

1200 Commits

Author SHA1 Message Date
matejcik
013e0f6d66 device_tests: get nicer tracebacks by using pytest.raises instead of custom exception code 2018-05-22 20:12:51 +02:00
matejcik
224e3c18f5 device_tests: fix test_protection_levels for T1
a couple expected ButtonRequests were missing
2018-05-22 20:12:45 +02:00
matejcik
a4fe17b461 device_tests: xfail for decred. This should be investigated more though. 2018-05-22 17:51:41 +02:00
matejcik
465c01d4f7 device_tests: add more currency markers
missed Stellar tests, plus Ethereum, for good measure
2018-05-22 17:29:03 +02:00
matejcik
af98a4071a device_tests: allow custom runxfail
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.
2018-05-22 17:29:03 +02:00
matejcik
9f4cc74b9a travis: set virtualenv version to restore build on py33 2018-05-18 10:58:28 +02:00
matejcik
1df0cd7094 travis: use newer pip that understands python_requires
(should fix build on Python 3.3 because of too-new tox)
2018-05-17 17:23:25 +02:00
Tomas Susanka
e656bbf072 stellar: xdr parse move to trezorctl; client works with messages 2018-05-17 17:17:09 +02:00
matejcik
db92b13f97 cosi: move things around
ed25519raw is moved back to trezorlib
ed25519cosi is renamed to cosi, and has a couple more functions,
with the expectation that TrezorClient.cosi_* methods will move there.

Also most code shouldn't need ed25519raw for anything, so it might get
renamed to "_ed25519" to indicate that it's a private implementation.

For now, I added a "verify" method to cosi, so that you don't need to
call into ed25519raw.checkvalid. But trezor-core's keyctl is also
using ed25519raw.publickey. I'm not sure if that's worth replicating
in cosi, or whether to just leave it be, so I'm leaving it be for now.

Importantly, new function "sign_with_privkey" does that math thing that
was part of the selftest and is also explicitly listed in keyctl.
(it's called sign_with_privkey because I expect to have a "sign" method
here that calls into Trezor)
2018-05-17 12:53:01 +02:00
Tomas Susanka
277296be90 tests/stellar: verify marked as not passing on T2 2018-05-16 15:04:00 +02:00
Tomas Susanka
3ee3083e8c tests/device/stellar: verify message 2018-05-14 16:53:10 +02:00
Tomas Susanka
bb74950e23 stellar: message is normalized before sign/verify 2018-05-14 15:33:57 +02:00
Tomas Susanka
22560128fe stellar: StellarSignMessage.message is bytes 2018-05-14 15:17:13 +02:00
Tomas Susanka
f97815f69a vendor: trezor-common updated 2018-05-14 15:16:26 +02:00
Tomas Susanka
d57fe33582 tests/device/stellar: sign message 2018-05-14 14:09:39 +02:00
matejcik
f9c20f8d2f travis: do not trigger trezor-core if not master 2018-05-11 16:01:11 +02:00
matejcik
cc7c8ccb59 client: clean up exception and decorator code 2018-05-11 15:34:49 +02:00
matejcik
a478dac5f7 client: clean up logging and printing 2018-05-11 15:34:23 +02:00
matejcik
a2b70562bc flake8: be stricter 2018-05-11 15:29:38 +02:00
matejcik
123aec5d7d tests/device_tests: remove all star imports 2018-05-11 15:29:38 +02:00
matejcik
266e34eec4 tests/device_tests: disable protobuf outputs unless run with -v 2018-05-11 15:29:38 +02:00
matejcik
0b6ec27064 logging: get rid of pprint and VerboseWireMixin
(and also TrezorClientVerbose)
2018-05-11 15:29:38 +02:00
matejcik
ca8ebacab9 logging: convenience function to set up protobuf logging 2018-05-11 15:29:38 +02:00
matejcik
1e4c1c093e protobuf: improve prettyprint formatting 2018-05-11 15:29:38 +02:00
matejcik
eed91db880 protocol: python logging to supersede VerboseWire 2018-05-11 15:29:38 +02:00
matejcik
b7c7190573 trezorlib: remove Hash to btc_hash, prepare for moving it away from things 2018-05-11 15:29:38 +02:00
matejcik
325312d11c protobuf: move formatter function to protobuf where it belongs better 2018-05-11 15:29:38 +02:00
matejcik
579adb1871 tests: update to use parse_path 2018-05-11 15:29:38 +02:00
matejcik
d106869061 trezorlib: deprecate client.expand_path and move the staticmethod
to an ordinary function tools.parse_path

Also remove PRIME_DERIVATION_FLAG and move it to tools.HARDENED_FLAG
2018-05-11 15:29:37 +02:00
matejcik
4f66b37f25 tests: update imports after tests.support move 2018-05-11 15:29:37 +02:00
matejcik
603b201ad0 tests: create tests.support module
for things that should not be part of trezorlib but tests use them
2018-05-11 15:29:37 +02:00
Tomas Susanka
77766d2d0f tests/device/eth: known/unknown token test 2018-05-10 13:33:06 +02:00
matejcik
a289d16838 build: require typing module for python < 3.4 2018-05-09 17:43:41 +02:00
matejcik
e0d850df7d protobuf: update generators and messages to be identical with trezor-core 2018-05-09 17:15:13 +02:00
Tomas Susanka
18adf6cc4d tests/stellar: marked as passing on T1 2018-05-09 16:34:51 +02:00
matejcik
5329bc9463
Merge pull request #167 from zulucrypto/stellar
[Stellar] [WIP] Add Stellar support to trezorctl
2018-05-07 14:23:56 +02:00
matejcik
dd0217c746 protobuf: update trezor-common and messages 2018-05-07 14:14:16 +02:00
matejcik
28264a4fe0 protobuf: improve description of sint_to_uint 2018-05-07 14:10:34 +02:00
matejcik
df8c3da1a2 protobuf: properly implement signed types (fixes #249) 2018-05-07 14:10:34 +02:00
matejcik
b156ec9757 travis: fix bash syntax bug in trigger-travis.sh 2018-05-07 13:36:55 +02:00
matejcik
76fea5afc4 build: move ethereum requirements to their own extra
We only need ethereum libraries for `ethereum_sign_tx` in trezorctl,
and rlp has caused us dependency problems in the past already.
Also we required ethjsonrpc for the same thing but never listed
that dependency anywhere.

That changes now.
2018-05-07 13:05:48 +02:00
matejcik
6c033bd810 travis: trigger build of trezor-core when python-trezor is pushed 2018-05-07 12:47:41 +02:00
matejcik
43f14ac760 build: add flake8 to dev requirements 2018-05-04 17:50:49 +02:00
matejcik
4c06a613b5 ethereum: do 'int_to_big_endian' conversion manually
instead of relying on 'rlp.utils' from which it was removed
by 1.0, and moved to 'eth_utils' which don't support py3.4
2018-05-04 17:43:58 +02:00
matejcik
41d99764c6 build: reorganize requirements, mark hidapi as optional
This drops the command line options. `libusb` is now required
unconditionally (it's cffi so no harm there). hidapi is an extra.
You either need to install it manually, or specify it in your
requirements.txt like so:

trezor[hidapi] >= 0.9.2
2018-05-04 15:54:23 +02:00
matejcik
ce7a434f2d build: add the prebuild command as a dependency for develop
So, 'python setup.py develop' exists. And of course it doesn't have build_py as
a dependency, because of course it doesn't.
We could use 'data_files' instead of 'package_data and copying', and then use
pkg_resources to find the actual file location, and that could work in theory.
But pkg_resources API is weird and messy and this whole area of Python
packaging theory barely works as it is.

Instead we will force the prebuild command to be a dependency of develop as
well as build_py, and we do this by monkey-patching instead of the proper way,
because at this point it seems cleaner. I wonder if there are more commands
that would need this.
2018-05-03 18:55:32 +02:00
Tomas Susanka
6f032456fc tests/device/nem: mosaic with levy test 2018-05-03 14:03:38 +02:00
ZuluCrypto
7128347975
stellar tests - added missing pytest import 2018-04-28 13:06:13 -06:00
ZuluCrypto
5fccc4381b
fix style to match flake8 2018-04-28 12:59:08 -06:00
ZuluCrypto
200b5a71df
Merge remote-tracking branch 'upstream/master' into stellar 2018-04-28 12:54:32 -06:00