def test_transfer_case9(self): """Test for transfer_value_with_the_fee function. Case when balance is same as sum of Amount and Fee. """ password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") try: ret = wallet.transfer_value_with_the_fee( password, "10000000000000000", to="hx95e12b1f98f9b847175849f51bed5d121e742f6a", amount="1020000000000000000", file_path=file_path, url=url) password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer2.txt") ret = wallet.transfer_value_with_the_fee( password, "10000000000000000", to="hx66425784bfddb5b430136b38268c3ce1fb68e8c5", amount="1000000000000000000", file_path=file_path, url=url) except AmountIsInvalid: self.assertTrue(False) else: self.assertTrue(True)
def test_transfer_case0_0(self): """Test for transfer_value_with_the_fee function. Case when transfer amount which is floating value to a wallet. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = bool( wallet.transfer_value_with_the_fee( password, "1000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2", amount="10000000000000001.2", file_path=file_path, url=url)) # Then self.assertEqual(False, ret) except AmountIsNotInteger: self.assertTrue(True)
def test_transfer_case0(self): """Test for transfer_value_with_the_fee function. Case when succeed transfer value. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = bool( wallet.transfer_value_with_the_fee( password, "10000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2", amount="1000000000000000000", file_path=file_path, url=url)) # Then self.assertEqual(True, ret) except FileNotFoundError: self.assertFalse(True)
def test_transfer_case8(self): """Test for transfer_value_with_the_fee function. Case when Amount is 0. """ password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") try: ret = wallet.transfer_value_with_the_fee( password, "10000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2", amount="0", file_path=file_path, url=url) except AmountIsInvalid: self.assertTrue(True) else: self.assertTrue(False)
def transfer_value_with_the_fee(password, fee, to, amount, file_path, url) -> int: """ Transfer the value to the specific address with the fee. :param password: Password including alphabet character, number, and special character. If the user doesn’t give password with -p, then CLI will show the prompt and user need to type the password. type(str) :param fee: Transaction fee. :param to: A user can change the decimal point to express all numbers including fee and amount. :param amount: A user can change the decimal point to express all numbers including fee and amount. :param file_path: File path for the keystore file of the wallet. type(str) :return: Predefined exit code """ try: transfer_result = wallet.transfer_value_with_the_fee(password, fee, to, amount, file_path, url) print("Transaction has been completed successfully.") return ExitCode.SUCCEED.value except wallet.NetworkIsInvalid: print(f"Fail: Network is invalid. It is impossible to connect {url}.") return ExitCode.NETWORK_IS_INVALID.value except FilePathIsWrong: return ExitCode.FILE_PATH_IS_WRONG.value except AddressIsWrong: print(f"Fail: The transaction target address does not have the correct format. please check the address again.") return ExitCode.WALLET_ADDRESS_IS_WRONG.value except PasswordIsWrong: print(f"Fail: Password is wrong.") return ExitCode.PASSWORD_IS_WRONG.value except NoEnoughBalanceInWallet: print(f"Fail: Wallet does not have enough balance.") return ExitCode.WALLET_DOES_NOT_HAVE_ENOUGH_BALANCE.value except AmountIsInvalid: print(f"Fail: The amount you want to transfer is not valid.") return ExitCode.AMOUNT_IS_INVALID.value except TransferFeeIsInvalid: print(f"Fail: Transaction Fee is invalid. The fee should be 10000000000000000.") return ExitCode.TRANSFER_FEE_IS_INVALID.value except FeeIsBiggerThanAmount: print(f"Fail: Fee is bigger than transaction amount. Please check your fee again.") return ExitCode.TRANSFER_FEE_IS_INVALID.value except NotAKeyStoreFile: print(f"Fail: {file_path} is not a Key store File.") return ExitCode.NOT_A_KEY_STORE_FILE.value except AddressIsSame: print(f"Fail: Wallet address to transfer must be different from Wallet address to deposit.") return ExitCode.WALLET_ADDRESS_IS_SAME.value except AmountIsNotInteger: print(f"Fail: Amount should be integer and loop unit, not icx") return ExitCode.AMOUNT_IS_NOT_INTEGER.value
def test_transfer_case10(self): """Test for transfer_value_with_the_fee function. Case when wallet address to transfer is same as wallet address to be sent. """ password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") try: ret = wallet.transfer_value_with_the_fee( password, "10000000000000000", to="hx66425784bfddb5b430136b38268c3ce1fb68e8c5", amount="0", file_path=file_path, url=url) except AddressIsSame: self.assertTrue(True) else: self.assertTrue(False)
def test_transfer_case3(self): """Test for transfer_value_with_the_fee function. Case when wallet does not have enough balance. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = wallet.transfer_value_with_the_fee( password, 0.01, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786", amount="100000000", file_path=file_path, url=url) # Then except NoEnoughBalanceInWallet: self.assertTrue(True)
def test_transfer_case2(self): """Test for transfer_value_with_the_fee function. Case when password is wrong. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = wallet.transfer_value_with_the_fee( password, 0.01, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786", amount="1", file_path=file_path, url=url) # Then except PasswordIsWrong: self.assertTrue(True)
def test_transfer_case4(self): """Test for transfer_value_with_the_fee function. Case when transfer fee is invalid. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = wallet.transfer_value_with_the_fee( password, -1, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786", amount="1000", file_path=file_path, url=url) # Then except TransferFeeIsInvalid: self.assertTrue(True)
def test_transfer_case5(self): """Test for transfer_value_with_the_fee function. Case when wallet address is wrong. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") print() # When try: ret = wallet.transfer_value_with_the_fee( password, 0.01, 18, to="hxa23651905d221dd36b", amount="1", file_path=file_path, url=url) # Then except AddressIsWrong: self.assertTrue(True)
def test_transfer_case3(self): """Test for transfer_value_with_the_fee function. Case when wallet does not have enough balance. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = wallet.transfer_value_with_the_fee( password, "10000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2", amount="10000000000000000000000000000000000000000000000000", file_path=file_path, url=url) # Then except NoEnoughBalanceInWallet: self.assertTrue(True) else: self.assertTrue(False)
def test_transfer_case2(self): """Test for transfer_value_with_the_fee function. Case when password is wrong. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = wallet.transfer_value_with_the_fee( password, "10000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2", amount="1000000000000000000", file_path=file_path, url=url) # Then except PasswordIsWrong: self.assertTrue(True) else: self.assertTrue(False)
def test_transfer_case0(self): """Test for transfer_value_with_the_fee function. Case when succeed transfer value. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = bool(wallet.transfer_value_with_the_fee( password, 0.01, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786", amount="1", file_path=file_path, url=url)) # Then self.assertEqual(True, ret) except FileNotFoundError: self.assertFalse(True)
def test_transfer_case4(self): """Test for transfer_value_with_the_fee function. Case when transfer fee is invalid. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = wallet.transfer_value_with_the_fee( password, 100000000000, to="hxa974f512a510299b53c55535c105ed962fd01ee2", amount="1000000000000000000", file_path=file_path, url=url) # Then except TransferFeeIsInvalid: self.assertTrue(True) else: self.assertTrue(False)
def test_transfer_case5(self): """Test for transfer_value_with_the_fee function. Case when wallet address is wrong. """ # Given password = "******" file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt") # When try: ret = wallet.transfer_value_with_the_fee( password, 10000000000000000, to="hxa974f512a510299b53c55535c105ed9", amount="1000000000000000000", file_path=file_path, url=url) # Then except AddressIsWrong: self.assertTrue(True) else: self.assertTrue(False)