From 67ea7dbd159d109abed85f6651be907539f37b53 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 31 May 2016 18:13:23 +0200 Subject: [PATCH] add persistance to trezor.config mock --- src/.gitignore | 1 + src/trezor/config.py | 59 +++++++++++++++++++++++++++++++------------- 2 files changed, 43 insertions(+), 17 deletions(-) create mode 100644 src/.gitignore diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 000000000..ca80b4356 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1 @@ +trezor.config diff --git a/src/trezor/config.py b/src/trezor/config.py index ae6f971de..8670bc7e1 100644 --- a/src/trezor/config.py +++ b/src/trezor/config.py @@ -1,25 +1,50 @@ -# mock in-memory implementation +import sys -_mock = {} +if sys.platform == 'trezor': # stmhal - use binary module (not working atm) -def get(app, key, default=None): - return _mock.get((app << 8) | key, default) + from TrezorConfig import Config -def set(app, key, value): - _mock[(app << 8) | key] = value - return True + _config = Config() -# real implementation commented below + def get(app, key, default=None): + v = _config.get(app, key) + return v if v else default -''' -from TrezorConfig import Config + def set(app, key, value): + return _config.set(app, key, value) -_config = Config() +else: # emulator (mock implementation using binary file) -def get(app, key, default=None): - v = _config.get(app, key) - return v if v else default + import ustruct -def set(app, key, value): - return _config.set(app, key, value) -''' + _mock = {} + _file = 'trezor.config' + + def _load(): + try: + with open(_file, 'rb') as f: + while True: + d = f.read(4) + if len(d) != 4: + break + k, l = ustruct.unpack('