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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 6
0
def testPersistentWalletName():
    walletFileName = Cli._normalizedWalletFileName("Default")
    assert "default.wallet" == walletFileName
    assert "default" == Cli.getWalletKeyName(walletFileName)
Ejemplo n.º 7
0
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)