Skip to content

Python algosdk wallet.Wallet.delete_key() always returns True #472

Open
@oysterpack

Description

@oysterpack

wallet.Wallet.delete_key() always return True

Per the docs, Wallet.delete_key(), should return True if the account has been deleted.
Thus, if the wallet does not contain the account, then False is the expected return result.
However, Walletdelete_key() always returns True.

Your environment

py-algorand-sdk 2.1.2
algokit 1.0.1

Steps to reproduce

import unittest

from algosdk.wallet import Wallet
from beaker import sandbox


class KmdWalletDeleteKeyTestCase(unittest.TestCase):
    def test_delete_key(self):
        kmd_client = sandbox.kmd.get_client()

        # create new wallet
        name = "foo"
        password = "bar"
        kmd_client.create_wallet(name, password)
        wallet = Wallet(name, password, kmd_client)

        # generate new wallet account
        address = wallet.generate_key()
        self.assertTrue(address in wallet.list_keys())

        # delete wallet account
        self.assertTrue(wallet.delete_key(address))
        self.assertFalse(address in wallet.list_keys())

        # delete wallet account again
        self.assertFalse(
            wallet.delete_key(address),
            "should return False because the wallet does not contain the account",
        ) # this assertion fails


if __name__ == "__main__":
    unittest.main()

Expected behaviour

Wallet.delete_key(address) should return False if the wallet does not contain the specified address

Actual behaviour

Wallet.delete_key(address) always returns True, even if the wallet does not contain the specified address

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions