Review fixes and additional comments in test

This commit is contained in:
hackrush 2018-02-20 09:22:15 +05:30
parent 2368433b22
commit 3754f34f53
4 changed files with 14 additions and 19 deletions

View file

@ -26,18 +26,8 @@ at anytime.
* `get` failing with a non-useful error message when given a uri for a channel claim
* exception checking in several wallet unit tests
* daemon not erring properly for non-numeric values being passed to the `bid` parameter for the `publish` method
* `publish` command to allow updating claims with a `bid` amount higher than the wallet balance, so long as the amount is less than the wallet balance plus the bid amount of the claim being updated (https://github.com/lbryio/lbry/issues/748)
*
* Fixed unnecessarily verbose exchange rate error (https://github.com/lbryio/lbry/issues/984)
* Merged two separate dht test folders into one
* Fixed value error due to a race condition when saving to the claim cache (https://github.com/lbryio/lbry/issues/1013)
* Fixed being unable to re-download updated content (#951)
* Fixed sending error messages for failed api requests
* Fixed the file manager startup being slow when handling thousands of files
* Fixed handling decryption error for blobs encrypted with an invalid key
* Fixed handling stream with no data blob (https://github.com/lbryio/lbry/issues/905)
* Fixed fetching the external ip
* Fixed API call to blob_list with --uri parameter (https://github.com/lbryio/lbry/issues/895)
* Fixed publish command to allow updating claims with bid amount higher than wallet balance(by spending the claimtrietx coin) (https://github.com/lbryio/lbry/issues/748)
### Deprecated
* `channel_list_mine`, replaced with `channel_list`

View file

@ -768,6 +768,9 @@ class Wallet(object):
def encrypt_wallet(self, new_password, update_keyring=False):
return defer.fail(NotImplementedError())
def get_max_usable_balance_for_claim(self, claim_name):
return defer.fail(NotImplementedError())
def _start(self):
return defer.fail(NotImplementedError())
@ -976,10 +979,8 @@ class LBRYumWallet(Wallet):
lambda result: Decimal(result['confirmed']) + Decimal(result.get('unconfirmed', 0.0)))
return d
@defer.inlineCallbacks
def get_max_usable_balance_for_claim(self, claim_name):
amt = yield self._run_cmd_as_defer_to_thread('get_max_spendable_amt_for_claim', claim_name)
defer.returnValue(amt)
return self._run_cmd_as_defer_to_thread('get_max_spendable_amount_for_claim', claim_name)
# Always create and return a brand new address
def get_new_address(self, for_change=False, account=None):

View file

@ -93,6 +93,7 @@ CONNECTION_MESSAGES = {
}
SHORT_ID_LEN = 20
MAX_UPDATE_FEE_ESTIMATE = 0.3
class IterableContainer(object):
@ -2008,8 +2009,8 @@ class Daemon(AuthJSONRPCServer):
amt = yield self.session.wallet.get_max_usable_balance_for_claim(name)
if bid > amt:
raise InsufficientFundsError(
"Please lower the bid value, the max amount you can specify for this claim is {}"
.format(amt))
"Please lower the bid value, the maximum amount you can specify for this claim is {}"
.format(amt - MAX_UPDATE_FEE_ESTIMATE))
metadata = metadata or {}
if fee is not None:

View file

@ -37,7 +37,7 @@ test_claim_dict = {
class MocLbryumWallet(LBRYumWallet):
def __init__(self, db_dir):
def __init__(self, db_dir, max_usable_balance=3):
LBRYumWallet.__init__(self, SQLiteStorage(db_dir), SimpleConfig(
{"lbryum_path": db_dir, "wallet_path": os.path.join(db_dir, "testwallet")}
))
@ -46,6 +46,7 @@ class MocLbryumWallet(LBRYumWallet):
self.total_reserved_points = Decimal(0.0)
self.queued_payments = defaultdict(Decimal)
self.network = FakeNetwork()
self._mock_max_usable_balance = max_usable_balance
assert self.config.get_wallet_path() == os.path.join(self.db_dir, "testwallet")
@defer.inlineCallbacks
@ -74,7 +75,9 @@ class MocLbryumWallet(LBRYumWallet):
return defer.succeed(True)
def get_max_usable_balance_for_claim(self, name):
return defer.succeed(3)
# The amount is returned on the basis of test_point_reservation_and_claim unittest
# Also affects test_successful_send_name_claim
return defer.succeed(self._mock_max_usable_balance)
class WalletTest(unittest.TestCase):
@defer.inlineCallbacks