1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-02 20:48:30 +00:00
Commit Graph

54 Commits

Author SHA1 Message Date
grdddj
dc22f98aed chore(python): better static typing for debuglink and emulator
[no changelog]
2022-11-21 14:08:47 +01:00
grdddj
e9a1bcc951 feat(python): add debuglink helpers to get layout information 2022-11-21 14:08:47 +01:00
grdddj
e0693d3a55 feat(python): add trezorctl possibility to record screen changes 2022-10-12 13:44:53 +02:00
matejcik
455884932e fix(python): do not implicitly import PIL by trezorctl 2022-06-30 14:57:25 +02:00
grdddj
3d505874aa feat(ci): create pyright tool and include it in CI
[no changelog]
2022-03-02 15:43:50 +01:00
grdddj
58fb6c77a7 feat(python): add screenshotting capability for T1 in Debuglink 2022-02-17 11:05:55 +01:00
Andrew Kozlik
ba4f046d6f feat(common): Add INFO button to DebugLinkDecision.
[no changelog]
2022-01-27 13:15:04 +01:00
matejcik
38fca4a83d chore(python): regenerate GNU copyright headers 2021-12-07 16:55:58 +01:00
matejcik
a2a8cc88d9 feat(python): make the protobuf mappings overridable 2021-12-07 16:55:58 +01:00
grdddj
1a0b590914 feat(python): add full type information
WIP - typing the trezorctl apps

typing functions trezorlib/cli

addressing most of mypy issue for trezorlib apps and _internal folder

fixing broken device tests by changing asserts in debuglink.py

addressing most of mypy issues in trezorlib/cli folder

adding types to some untyped functions, mypy section in setup.cfg

typing what can be typed, some mypy fixes, resolving circular import issues

importing type objects in "if TYPE_CHECKING:" branch

fixing CI by removing assert in emulator, better ignore comments

CI assert fix, style fixes, new config options

fixup! CI assert fix, style fixes, new config options

type fixes after rebasing on master

fixing python3.6 and 3.7 unittests by importing Literal from typing_extensions

couple mypy and style fixes

fixes and improvements from code review

silencing all but one mypy issues

trial of typing the tools.expect function

fixup! trial of typing the tools.expect function

@expect and @session decorators correctly type-checked

Optional args in CLI where relevant, not using general list/tuple/dict where possible

python/Makefile commands, adding them into CI, ignoring last mypy issue

documenting overload for expect decorator, two mypy fixes coming from that

black style fix

improved typing of decorators, pyright config file

addressing or ignoring pyright errors, replacing mypy in CI by pyright

fixing incomplete assert causing device tests to fail

pyright issue that showed in CI but not locally, printing pyright version in CI

fixup! pyright issue that showed in CI but not locally, printing pyright version in CI

unifying type:ignore statements for pyright usage

resolving PIL.Image issues, pyrightconfig not excluding anything

replacing couple asserts with TypeGuard on safe_issubclass

better error handling of usb1 import for webusb

better error handling of hid import

small typing details found out by strict pyright mode

improvements from code review

chore(python): changing List to Sequence for protobuf messages

small code changes to reflect the protobuf change to Sequence

importing TypedDict from typing_extensions to support 3.6 and 3.7

simplify _format_access_list function

fixup! simplify _format_access_list function

typing tools folder

typing helper-scripts folder

some click typing

enforcing all functions to have typed arguments

reverting the changed argument name in tools

replacing TransportType with Transport

making PinMatrixRequest.type protobuf attribute required

reverting the protobuf change, making argument into get_pin Optional

small fixes in asserts

solving the session decorator type issues

fixup! solving the session decorator type issues

improvements from code review

fixing new pyright errors introduced after version increase

changing -> Iterable to -> Sequence in enumerate_devices, change in wait_for_devices

style change in debuglink.py

chore(python): adding type annotation to Sequences in messages.py

better "self and cls" types on Transport

fixup! better "self and cls" types on Transport

fixing some easy things from strict pyright run
2021-11-26 16:28:49 +01:00
matejcik
2a2da21879 fix(python/debuglink): fix formatting for expected messages
This was broken by the previous commit removing f-strings. For this
reason, `format()` was renamed to `to_string` to make it clearer that
it's not the `str.format` method.
2021-11-10 13:57:57 +01:00
amadejpapez
85ba7c12ba style(all): use f-strings for formatting
[no changelog]
2021-10-13 11:53:17 +02:00
matejcik
92e9d61e24 feat(python/debuglink): reset_debug_features to reconfigure debuglink 2021-08-04 10:58:59 +02:00
matejcik
b3312d1ef7 fix(tests): set_filter must be used in with-block
This makes sure filters are properly cleared when the with-block exits
2021-08-04 10:58:59 +02:00
matejcik
f8bb90366a fix(tests): auto-swipe by using only ButtonRequest.pages 2021-07-09 21:01:07 +02:00
matejcik
d047c98cb2 feat(python/debuglink): auto-page on pageable screens 2021-06-22 11:25:12 +02:00
matejcik
4f0aca7bb5 feat(python): pass whole ButtonRequest to button_request UI handler 2021-06-22 11:25:12 +02:00
matejcik
ea2a9375ac feat(python/debuglink): streamline expected responses handling [no changelog] 2021-06-22 11:25:12 +02:00
matejcik
a58823cc0c refactor(python): rework trezorlib protobuf codec
API-compatibility with the original one is retained.

Now that we don't need to keep code parity with core, we could do some
changes that make life easier.

All generated classes are now in one file. This makes github diffs more
readable, at the cost of somewhat complicating inspecting individual
classes; however, that is something we shouldn't be doing anyway.

Enums are now implemented as enum.IntEnum.

The original class-level FIELDS member was restored.

Each field is now defined via protobuf.Field, which is easier to work
with in the codec, AND we're not stuffing defaults and flags into the
same field.
2021-06-08 09:55:19 +02:00
matejcik
cb7152542d feat: drop DebugLinkShowText functionality 2021-03-18 10:59:51 +01:00
Martin Milata
192d0dcf87 feat(core): hold homescreen to lock 2021-02-24 00:10:10 +01:00
Martin Milata
8fd12f4373 fix(tests): run test_softlock_instability on emulator only 2020-12-01 12:35:11 +01:00
matejcik
3d6d1a56ac feat(python): implement API compatibility with trezorlib 0.12 2020-10-30 10:25:51 +01:00
matejcik
08d896f2f9 chore(tests): update to kwargs usage and new btc.sign_tx API 2020-09-23 16:00:10 +02:00
matejcik
a14634c389 python: make PIL optional in the toif module, add size check 2020-08-25 13:17:08 +02:00
matejcik
741fca0156 tests: watch_layout must be explicit (fixes #1142) 2020-07-29 11:50:47 +02:00
matejcik
6f53ca0ac6 core: rework wait_layout()
The original wait_layout was unreliable, because there are no guarantees
re order of arrival of the respective events. Still, TT's event handling
is basically deterministic, so as long as the host sent its messages
close enough to each other, the order worked out.

This is no longer the case with the introduction of loop.spawn: TT's
behavior is still deterministic, but now ButtonAck is processed *before*
the corresponding wait_layout, so the waiting side waits forever.

In the new process, the host must first register to receive layout
events, and then receives all of them (so the number of calls to
wait_layout must match the number of layout changes).

DebugLinkWatchLayout message must be version-gated, because of an
unfortunate collection of bugs in previous versions wrt unknown message
handling; and this interests us because upgrade-tests are using
wait_layout feature.
2020-06-04 16:18:46 +02:00
matejcik
5d823ff5ea core: use ButtonRequestType.PinEntry for PIN entry 2020-06-04 16:18:46 +02:00
matejcik
fc6c99c6f9 tests: disable PIN detection, all PIN uses must be explicit 2020-06-04 16:18:46 +02:00
matejcik
b68cc5abda python/debuglink: implement use_pin_sequence support for trezor-core 2020-06-04 16:18:46 +02:00
matejcik
62ced317cd python/debuglink: proto -> messages 2020-06-04 16:18:46 +02:00
matejcik
ee32806bb2 python/debuglink: add debuglink message logging 2020-06-04 16:18:46 +02:00
matejcik
6069173252 python/debuglink: clean out debuglink methods 2020-06-04 16:18:46 +02:00
matejcik
7ebbccdbba python/debuglink: support conditional expected_responses 2020-04-25 18:27:29 +02:00
matejcik
7a85d93d94 python/debuglink: properly use session_counter for debuglink transport 2020-03-26 11:30:06 +01:00
matejcik
9a330f3475 python: unify protobuf-encoding code paths
Protobuf encoding now happens in TrezorClient, and transports get encoded blobs
to (chunkify and) send.  This is a better design because transports don't need
to know about protobuf.

It also lays groundwork for sending raw bytes feature (#116)

This commit also removes all vestiges of ProtocolV2 which was never used and
will probably need to be redesigned from the ground up anyway. The code is
still ready for protocol flexibility.
2020-03-26 11:30:06 +01:00
matejcik
5523c7bbef tests: add SD card format feature tests 2020-02-20 12:51:48 +01:00
matejcik
81a03edf61 python/debuglink: add docstrings, rename functions for clearer usage 2020-02-12 15:38:18 +01:00
matejcik
7a253a6c0b python/debuglink: properly clean up at end of "with client" 2020-02-12 13:31:31 +01:00
matejcik
94b85efba1 python/debuglink: make pin sequences configurable 2020-02-12 10:36:42 +01:00
Tomas Susanka
2c0504ad1c
Merge pull request #803 from trezor/passphrase
Passphrase Redesign
2020-02-11 16:01:59 +01:00
matejcik
05a1d6f771 core/debug: add "show arbitrary screen" capability, for easier prototyping 2020-02-11 11:53:34 +01:00
matejcik
ee07b32f52
python: fix debuglink usage of get_passphrase 2020-02-07 11:41:02 +00:00
Tomas Susanka
51ef963738 tests: introduce UI tests for core 2020-01-03 14:28:27 +00:00
Pavol Rusnak
bb8d809a6d
common: change language field to IETF BCP 47 language tag 2019-12-08 11:27:10 +01:00
matejcik
862e582ec1 tests: make {needs,no}_backup flags available in test suite 2019-11-13 16:48:35 +01:00
matejcik
fd8aed6105 all: drop XPRV feature of LoadDevice 2019-11-13 16:48:35 +01:00
matejcik
3349f737df python/debuglink: prevent race with recovery homescreen eating debuglink decisions 2019-11-07 11:27:45 +01:00
matejcik
c970ad437d tests: improve layout_lines API 2019-10-22 17:06:49 +02:00
matejcik
a8fc569016 debug: add support for general layout waiting 2019-10-22 17:06:49 +02:00