wallet tests and py3 compatibility

This commit is contained in:
Lex Berezhny 2018-07-06 01:17:20 -04:00 committed by Jack Robison
parent f2f212edba
commit 12ff7015cd
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2
7 changed files with 30 additions and 14 deletions

View file

@ -165,7 +165,7 @@ class ServerRequestHandler(object):
return True
ds = []
for query_handler, query_identifiers in self.query_handlers.iteritems():
for query_handler, query_identifiers in self.query_handlers.items():
queries = {q_i: msg[q_i] for q_i in query_identifiers if q_i in msg}
d = query_handler.handle_queries(queries)
d.addErrback(log_errors)

View file

@ -166,7 +166,7 @@ def DeferredDict(d, consumeErrors=False):
keys = []
dl = []
response = {}
for k, v in d.iteritems():
for k, v in d.items():
keys.append(k)
dl.append(v)
results = yield defer.DeferredList(dl, consumeErrors=consumeErrors)

View file

@ -1,7 +1,7 @@
import logging
from twisted.internet import defer
from twisted._threads import AlreadyQuit
from ComponentManager import ComponentManager
from .ComponentManager import ComponentManager
log = logging.getLogger(__name__)

View file

@ -43,7 +43,7 @@ class ComponentManager(object):
self.components = set()
self.analytics_manager = analytics_manager
for component_name, component_class in self.default_component_classes.iteritems():
for component_name, component_class in self.default_component_classes.items():
if component_name in override_components:
component_class = override_components.pop(component_name)
if component_name not in self.skip_components:
@ -52,7 +52,7 @@ class ComponentManager(object):
if override_components:
raise SyntaxError("unexpected components: %s" % override_components)
for component_class in self.component_classes.itervalues():
for component_class in self.component_classes.values():
self.components.add(component_class(self))
@defer.inlineCallbacks
@ -117,7 +117,7 @@ class ComponentManager(object):
:return: (defer.Deferred)
"""
for component_name, cb in callbacks.iteritems():
for component_name, cb in callbacks.items():
if component_name not in self.component_classes:
raise NameError("unknown component: %s" % component_name)
if not callable(cb):

View file

@ -234,7 +234,7 @@ class Daemon(AuthJSONRPCServer):
@property
def ledger(self):
return self.session.wallet.default_account.ledger
return self.wallet.default_account.ledger
@defer.inlineCallbacks
def setup(self):

View file

@ -1,2 +1,2 @@
from lbrynet import custom_logger
import Components # register Component classes
from . import custom_logger
from . import Components # register Component classes

View file

@ -1,5 +1,6 @@
import types
from twisted.internet import defer
from orchstr8.testcase import IntegrationTestCase, d2f
from torba.constants import COIN
@ -9,6 +10,7 @@ lbryschema.BLOCKCHAIN_NAME = 'lbrycrd_regtest'
from lbrynet import conf as lbry_conf
from lbrynet.daemon.Daemon import Daemon
from lbrynet.wallet.manager import LbryWalletManager
from lbrynet.daemon.Components import WalletComponent
class FakeAnalytics:
@ -41,16 +43,30 @@ class CommandTestCase(IntegrationTestCase):
await self.blockchain.generate(1)
await self.on_transaction_id(sendtxid)
self.daemon = Daemon(FakeAnalytics())
self.daemon.session = types.SimpleNamespace()
self.daemon.session.wallet = self.manager
self.daemon.wallet = self.manager
wallet_component = WalletComponent(self.daemon.component_manager)
wallet_component.wallet = self.manager
wallet_component._running = True
self.daemon.component_manager.components.add(wallet_component)
class DaemonCommandsTests(CommandTestCase):
VERBOSE = True
async def test_new_channel(self):
result = await d2f(self.daemon.jsonrpc_channel_new('@bar', 1*COIN))
@defer.inlineCallbacks
def test_new_channel(self):
result = yield self.daemon.jsonrpc_channel_new('@bar', 1*COIN)
self.assertIn('txid', result)
await self.on_transaction_id(result['txid'])
yield self.ledger.on_transaction.deferred_where(
lambda e: e.tx.hex_id.decode() == result['txid']
)
@defer.inlineCallbacks
def test_wallet_balance(self):
result = yield self.daemon.jsonrpc_wallet_balance()
self.assertEqual(result, 10*COIN)
@defer.inlineCallbacks
def test_publish(self):
result = yield self.daemon.jsonrpc_publish('foo', 1*COIN)