def testSaveAndRestoreWallet(do, be, cliForMultiNodePools, aliceMultiNodePools, earlMultiNodePools): be(cliForMultiNodePools) # No wallet should have been restored assert cliForMultiNodePools._activeWallet is None connectTo("pool1", do, cliForMultiNodePools, activeWalletPresents=True, identifiers=0, firstTimeConnect=True) createNewKey(do, cliForMultiNodePools, keyringName="Default") switchEnv("pool2", do, cliForMultiNodePools, checkIfWalletRestored=False) createNewKey(do, cliForMultiNodePools, keyringName="Default") createNewKeyring("mykr0", do) createNewKey(do, cliForMultiNodePools, keyringName="mykr0") createNewKey(do, cliForMultiNodePools, keyringName="mykr0") useKeyring("Default", do) createNewKey(do, cliForMultiNodePools, keyringName="Default") sleep(10) switchEnv("pool1", do, cliForMultiNodePools, checkIfWalletRestored=True, restoredWalletKeyName="Default", restoredIdentifiers=1) createNewKeyring("mykr1", do) createNewKey(do, cliForMultiNodePools, keyringName="mykr1") switchEnv("pool2", do, cliForMultiNodePools, checkIfWalletRestored=True, restoredWalletKeyName="Default", restoredIdentifiers=2) createNewKeyring("mykr0", do, expectedMsgs = [ '"mykr0" conflicts with an existing keyring', 'Please choose a new name.']) filePath = Cli.getWalletFilePath(cliForMultiNodePools.getContextBasedKeyringsBaseDir(), cliForMultiNodePools.walletFileName) switchEnv("pool1", do, cliForMultiNodePools, checkIfWalletRestored=True, restoredWalletKeyName="mykr1", restoredIdentifiers=1) useKeyring(filePath, do, expectedName="mykr0", expectedMsgs=[ "Given wallet file ({}) doesn't " "belong to current context.".format(filePath), "Please connect to 'pool2' environment and try again."]) # exit from current cli so that active wallet gets saved exitFromCli(do) # different tests for restoring saved wallet filePath = Cli.getWalletFilePath(cliForMultiNodePools.getContextBasedKeyringsBaseDir(), cliForMultiNodePools.walletFileName) restartCli(aliceMultiNodePools, be, do, "mykr1", 1) restartCliWithCorruptedWalletFile(earlMultiNodePools, be, do, filePath)
def testPersistentWalletName(): # Connects to "test" environment walletFileName = normalizedWalletFileName("test") assert "test.wallet" == walletFileName assert "test" == Cli.getWalletKeyName(walletFileName) # New default wallet (keyring) gets created walletFileName = normalizedWalletFileName("Default") assert "default.wallet" == walletFileName assert "default" == Cli.getWalletKeyName(walletFileName) # User creates new wallet (keyring) walletFileName = normalizedWalletFileName("MyVault") assert "myvault.wallet" == walletFileName assert "myvault" == Cli.getWalletKeyName(walletFileName)
def testSaveAndRestoreWallet(do, be, cliForMultiNodePools, CliBuilder): be(cliForMultiNodePools) # No wallet should have been restored assert cliForMultiNodePools._activeWallet is None connectTo("pool1", do, cliForMultiNodePools, activeWalletPresents=True, identifiers=0, firstTimeConnect=True) createNewKey(do, cliForMultiNodePools, keyringName="Default") switchEnv("pool2", do, cliForMultiNodePools, checkIfWalletRestored=False) createNewKey(do, cliForMultiNodePools, keyringName="Default") createNewKeyring("mykr0", do) createNewKey(do, cliForMultiNodePools, keyringName="mykr0") createNewKey(do, cliForMultiNodePools, keyringName="mykr0") useKeyring("Default", do) createNewKey(do, cliForMultiNodePools, keyringName="Default") sleep(20) switchEnv("pool1", do, cliForMultiNodePools, checkIfWalletRestored=True, restoredWalletKeyName="Default", restoredIdentifiers=1) createNewKeyring("mykr1", do) createNewKey(do, cliForMultiNodePools, keyringName="mykr1") switchEnv("pool2", do, cliForMultiNodePools, checkIfWalletRestored=True, restoredWalletKeyName="Default", restoredIdentifiers=2) createNewKeyring("mykr0", do, expectedMsgs=[ "mykr0 conflicts with an existing keyring name", "Please choose a new name" ]) filePath = Cli.getWalletFilePath(cliForMultiNodePools.getKeyringsBaseDir(), cliForMultiNodePools.walletFileName) switchEnv("pool1", do, cliForMultiNodePools, checkIfWalletRestored=True, restoredWalletKeyName="mykr1", restoredIdentifiers=1) useKeyring(filePath, do, expectedName="mykr0", expectedMsgs=['Saved keyring "Default" restored']) exit(do) restartCli(CliBuilder, be, do, "Default", 1)
def testSaveAndRestoreWallet(do, be, cli, aliceCli): be(cli) assert cli._activeWallet is None createNewKey(do, cli, keyringName="Default") createNewKeyring("mykr0", do) useKeyring("Default", do) filePath = Cli.getWalletFilePath(cli.getContextBasedKeyringsBaseDir(), cli.walletFileName) exitFromCli(do) be(aliceCli) useKeyring(filePath, do, expectedName="Default") useKeyring("mykr0", do, expectedName="mykr0")
def testPersistentWalletName(): cliName = "sovrin" # Connects to "test" environment walletFileName = Cli.getPersistentWalletFileName( cliName=cliName, currPromptText="sovrin@test") assert "keyring_test" == walletFileName assert "test" == Cli.getWalletKeyName(walletFileName) # New default wallet (keyring) gets created walletFileName = Cli.getPersistentWalletFileName( cliName=cliName, currPromptText="sovrin@test", walletName="Default") assert "keyring_default_test" == walletFileName assert "default" == Cli.getWalletKeyName(walletFileName) # User creates new wallet (keyring) walletFileName = Cli.getPersistentWalletFileName( cliName=cliName, currPromptText="sovrin@test", walletName="MyVault") assert "keyring_myvault_test" == walletFileName assert "myvault" == Cli.getWalletKeyName(walletFileName)
def testPersistentWalletName(): walletFileName = Cli._normalizedWalletFileName("Default") assert "default.wallet" == walletFileName assert "default" == Cli.getWalletKeyName(walletFileName)
def getWalletFilePath(cli): fileName = cli.getPersistentWalletFileName() return Cli.getWalletFilePath(cli.getContextBasedKeyringsBaseDir(), fileName)
def getWalletFilePath(cli): activeWalletName = cli._activeWallet.name if cli._activeWallet else "" fileName = Cli.getPersistentWalletFileName(cli.name, cli.currPromptText, activeWalletName) return Cli.getWalletFilePath(cli.getKeyringsBaseDir(), fileName)