2019-06-21 03:02:58 +02:00
|
|
|
from lbry.testcase import CommandTestCase
|
2019-02-11 23:27:54 +01:00
|
|
|
|
|
|
|
|
|
|
|
class AccountManagement(CommandTestCase):
|
|
|
|
|
|
|
|
async def test_account_list_set_create_remove_add(self):
|
|
|
|
# check initial account
|
|
|
|
response = await self.daemon.jsonrpc_account_list()
|
|
|
|
self.assertEqual(len(response['lbc_regtest']), 1)
|
|
|
|
|
|
|
|
# change account name and gap
|
|
|
|
account_id = response['lbc_regtest'][0]['id']
|
|
|
|
self.daemon.jsonrpc_account_set(
|
|
|
|
account_id=account_id, new_name='test account',
|
|
|
|
receiving_gap=95, receiving_max_uses=96,
|
|
|
|
change_gap=97, change_max_uses=98
|
|
|
|
)
|
|
|
|
response = (await self.daemon.jsonrpc_account_list())['lbc_regtest'][0]
|
|
|
|
self.assertEqual(response['name'], 'test account')
|
|
|
|
self.assertEqual(
|
|
|
|
response['address_generator']['receiving'],
|
|
|
|
{'gap': 95, 'maximum_uses_per_address': 96}
|
|
|
|
)
|
|
|
|
self.assertEqual(
|
|
|
|
response['address_generator']['change'],
|
|
|
|
{'gap': 97, 'maximum_uses_per_address': 98}
|
|
|
|
)
|
|
|
|
|
|
|
|
# create another account
|
|
|
|
await self.daemon.jsonrpc_account_create('second account')
|
|
|
|
response = await self.daemon.jsonrpc_account_list()
|
|
|
|
self.assertEqual(len(response['lbc_regtest']), 2)
|
|
|
|
self.assertEqual(response['lbc_regtest'][1]['name'], 'second account')
|
|
|
|
account_id2 = response['lbc_regtest'][1]['id']
|
|
|
|
|
|
|
|
# make new account the default
|
|
|
|
self.daemon.jsonrpc_account_set(account_id=account_id2, default=True)
|
|
|
|
response = await self.daemon.jsonrpc_account_list(show_seed=True)
|
|
|
|
self.assertEqual(response['lbc_regtest'][0]['name'], 'second account')
|
|
|
|
|
|
|
|
account_seed = response['lbc_regtest'][1]['seed']
|
|
|
|
|
|
|
|
# remove account
|
|
|
|
self.daemon.jsonrpc_account_remove(response['lbc_regtest'][1]['id'])
|
|
|
|
response = await self.daemon.jsonrpc_account_list()
|
|
|
|
self.assertEqual(len(response['lbc_regtest']), 1)
|
|
|
|
|
|
|
|
# add account
|
|
|
|
await self.daemon.jsonrpc_account_add('recreated account', seed=account_seed)
|
|
|
|
response = await self.daemon.jsonrpc_account_list()
|
|
|
|
self.assertEqual(len(response['lbc_regtest']), 2)
|
|
|
|
self.assertEqual(response['lbc_regtest'][1]['name'], 'recreated account')
|
|
|
|
|
|
|
|
# list specific account
|
|
|
|
response = await self.daemon.jsonrpc_account_list(account_id, include_claims=True)
|
|
|
|
self.assertEqual(response['name'], 'recreated account')
|
2019-06-23 18:55:24 +02:00
|
|
|
|
|
|
|
async def test_wallet_migration(self):
|
|
|
|
# null certificates should get deleted
|
|
|
|
await self.channel_create('@foo1')
|
|
|
|
await self.channel_create('@foo2')
|
|
|
|
await self.channel_create('@foo3')
|
|
|
|
keys = list(self.account.channel_keys.keys())
|
|
|
|
self.account.channel_keys[keys[0]] = None
|
|
|
|
self.account.channel_keys[keys[1]] = "some invalid junk"
|
|
|
|
await self.account.maybe_migrate_certificates()
|
|
|
|
self.assertEqual(list(self.account.channel_keys.keys()), [keys[2]])
|