1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-06-05 23:58:46 +00:00

tests: CallException relaced with AssertionException in response validation

Generic exceptions are evil. When throwing a CallException in the
request check you can't distinguish in the tests if it is an Exception
that occured in during the execution (that's CallException) or during
some tests (that used to be CallException as well).
This commit is contained in:
Tomas Susanka 2018-02-22 16:51:32 +01:00
parent bc036bc857
commit d6f0c54d3e

View File

@ -107,6 +107,11 @@ class CallException(Exception):
self.args = [code, message] self.args = [code, message]
class AssertionException(Exception):
def __init__(self, code, message):
self.args = [code, message]
class PinException(CallException): class PinException(CallException):
pass pass
@ -405,19 +410,19 @@ class DebugLinkMixin(object):
try: try:
expected = self.expected_responses.pop(0) expected = self.expected_responses.pop(0)
except IndexError: except IndexError:
raise CallException(proto.FailureType.UnexpectedMessage, raise AssertionException(proto.FailureType.UnexpectedMessage,
"Got %s, but no message has been expected" % pprint(msg)) "Got %s, but no message has been expected" % pprint(msg))
if msg.__class__ != expected.__class__: if msg.__class__ != expected.__class__:
raise CallException(proto.FailureType.UnexpectedMessage, raise AssertionException(proto.FailureType.UnexpectedMessage,
"Expected %s, got %s" % (pprint(expected), pprint(msg))) "Expected %s, got %s" % (pprint(expected), pprint(msg)))
for field, value in expected.__dict__.items(): for field, value in expected.__dict__.items():
if value is None or value == []: if value is None or value == []:
continue continue
if getattr(msg, field) != value: if getattr(msg, field) != value:
raise CallException(proto.FailureType.UnexpectedMessage, raise AssertionException(proto.FailureType.UnexpectedMessage,
"Expected %s, got %s" % (pprint(expected), pprint(msg))) "Expected %s, got %s" % (pprint(expected), pprint(msg)))
def callback_ButtonRequest(self, msg): def callback_ButtonRequest(self, msg):
log("ButtonRequest code: " + get_buttonrequest_value(msg.code)) log("ButtonRequest code: " + get_buttonrequest_value(msg.code))