Add load_ssb_secret() to utils
This commit is contained in:
36
ssb/tests/test_util.py
Normal file
36
ssb/tests/test_util.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from base64 import b64decode
|
||||
from unittest.mock import mock_open, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from ssb.util import load_ssb_secret, ConfigException
|
||||
|
||||
|
||||
CONFIG_FILE = """
|
||||
## Comments should be supported too
|
||||
{
|
||||
"curve": "ed25519",
|
||||
"public": "rsYpBIcXsxjQAf0JNes+MHqT2DL+EfopWKAp4rGeEPQ=ed25519",
|
||||
"private": "/bqDBI/vGLD5qy3GxMsgHFgYIrrY08JfTzUaCYT6x0GuxikEhxezGNAB/Qk16z4wepPYMv4R+ilYoCnisZ4Q9A==",
|
||||
"id": "@rsYpBIcXsxjQAf0JNes+MHqT2DL+EfopWKAp4rGeEPQ=.ed25519"
|
||||
}
|
||||
"""
|
||||
|
||||
CONFIG_FILE_INVALID = CONFIG_FILE.replace('ed25519', 'foo')
|
||||
|
||||
|
||||
def test_load_secret():
|
||||
with patch('ssb.util.open', mock_open(read_data=CONFIG_FILE), create=True):
|
||||
secret = load_ssb_secret()
|
||||
|
||||
priv_key = b'\xfd\xba\x83\x04\x8f\xef\x18\xb0\xf9\xab-\xc6\xc4\xcb \x1cX\x18"\xba\xd8\xd3\xc2_O5\x1a\t\x84\xfa\xc7A'
|
||||
|
||||
assert secret['id'] == '@rsYpBIcXsxjQAf0JNes+MHqT2DL+EfopWKAp4rGeEPQ=.ed25519'
|
||||
assert bytes(secret['keypair']) == priv_key
|
||||
assert bytes(secret['keypair'].verify_key) == b64decode('rsYpBIcXsxjQAf0JNes+MHqT2DL+EfopWKAp4rGeEPQ=')
|
||||
|
||||
|
||||
def test_load_exception():
|
||||
with pytest.raises(ConfigException):
|
||||
with patch('ssb.util.open', mock_open(read_data=CONFIG_FILE_INVALID), create=True):
|
||||
load_ssb_secret()
|
Reference in New Issue
Block a user