Add keystore test
This commit is contained in:
47
tests/test_keyfile.py
Normal file
47
tests/test_keyfile.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# standard imports
|
||||
import os
|
||||
import unittest
|
||||
import logging
|
||||
|
||||
# local imports
|
||||
from cic.keystore import KeystoreDirectory
|
||||
from funga.eth.keystore.dict import DictKeystore
|
||||
from funga.error import DecryptError
|
||||
from hexathon import uniform as hex_uniform
|
||||
|
||||
logging = logging.getLogger()
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
|
||||
def pass_getter():
|
||||
return 'test'
|
||||
|
||||
|
||||
class EthKeystoreDirectory(DictKeystore, KeystoreDirectory):
|
||||
pass
|
||||
|
||||
|
||||
class TestKeyfile(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.path = os.path.join(script_dir, 'testdata', 'keystore')
|
||||
self.keystore = EthKeystoreDirectory()
|
||||
|
||||
|
||||
def test_keystore_bogus(self):
|
||||
bogus_path = os.path.join(self.path, 'bogus')
|
||||
self.keystore.process_dir(bogus_path)
|
||||
|
||||
|
||||
def test_keystore_ok(self):
|
||||
ok_path = os.path.join(self.path, 'ok')
|
||||
with self.assertRaises(DecryptError):
|
||||
self.keystore.process_dir(ok_path) # wrong password
|
||||
self.keystore.process_dir(ok_path, default_password='test')
|
||||
self.keystore.process_dir(ok_path, password_retriever=pass_getter)
|
||||
self.assertTrue(hex_uniform('cc4f82F5DacDE395E1E0CFc4d62827C8B8B5688C') in self.keystore.list())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
1
tests/testdata/keystore/bogus/nokey.txt
vendored
Normal file
1
tests/testdata/keystore/bogus/nokey.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
foo
|
||||
1
tests/testdata/keystore/ok/key.json
vendored
Normal file
1
tests/testdata/keystore/ok/key.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"address": "cc4f82F5DacDE395E1E0CFc4d62827C8B8B5688C", "version": 3, "crypto": {"cipher": "aes-128-ctr", "ciphertext": "755c0911b7b4b36fab03f7c0238f29984db4a4d705b9a8aaeb5cd4a0066b586d", "cipherparams": {"iv": "61caf4396b9923f52c6a4a605a79fed5"}, "kdf": "scrypt", "kdfparams": {"dklen": 32, "n": 262144, "p": 1, "r": 8, "salt": "4a84bb019dfef7fb6d4fcfaa0be89f95bdd588d6df6827553da607366fee74b1"}, "mac": "fe551628027caaffaefefe20dd6f9150baca97e473bb238e7e3385c9cc6dd80f"}, "id": "95f197c8-29ab-11ec-aae8-02428a6d9287"}
|
||||
Reference in New Issue
Block a user