From 12ff7015cd67beedf7cbb1d11640d9b56962b366 Mon Sep 17 00:00:00 2001 From: Lex Berezhny Date: Fri, 6 Jul 2018 01:17:20 -0400 Subject: [PATCH] wallet tests and py3 compatibility --- lbrynet/core/server/ServerRequestHandler.py | 2 +- lbrynet/core/utils.py | 2 +- lbrynet/daemon/Component.py | 2 +- lbrynet/daemon/ComponentManager.py | 6 ++--- lbrynet/daemon/Daemon.py | 2 +- lbrynet/daemon/__init__.py | 4 +-- .../tests/integration/wallet/test_commands.py | 26 +++++++++++++++---- 7 files changed, 30 insertions(+), 14 deletions(-) diff --git a/lbrynet/core/server/ServerRequestHandler.py b/lbrynet/core/server/ServerRequestHandler.py index ddbd4a4a1..3ed65023e 100644 --- a/lbrynet/core/server/ServerRequestHandler.py +++ b/lbrynet/core/server/ServerRequestHandler.py @@ -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) diff --git a/lbrynet/core/utils.py b/lbrynet/core/utils.py index 2c1f5cad3..1f7f8515e 100644 --- a/lbrynet/core/utils.py +++ b/lbrynet/core/utils.py @@ -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) diff --git a/lbrynet/daemon/Component.py b/lbrynet/daemon/Component.py index a323ff7f1..ccc1c00d7 100644 --- a/lbrynet/daemon/Component.py +++ b/lbrynet/daemon/Component.py @@ -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__) diff --git a/lbrynet/daemon/ComponentManager.py b/lbrynet/daemon/ComponentManager.py index cd4bb84fe..b33d6887b 100644 --- a/lbrynet/daemon/ComponentManager.py +++ b/lbrynet/daemon/ComponentManager.py @@ -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): diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py index 0f71ffbc6..cd48e6538 100644 --- a/lbrynet/daemon/Daemon.py +++ b/lbrynet/daemon/Daemon.py @@ -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): diff --git a/lbrynet/daemon/__init__.py b/lbrynet/daemon/__init__.py index 297877dc8..77d34b059 100644 --- a/lbrynet/daemon/__init__.py +++ b/lbrynet/daemon/__init__.py @@ -1,2 +1,2 @@ -from lbrynet import custom_logger -import Components # register Component classes +from . import custom_logger +from . import Components # register Component classes diff --git a/lbrynet/tests/integration/wallet/test_commands.py b/lbrynet/tests/integration/wallet/test_commands.py index 46a48050f..3f5a31ae6 100644 --- a/lbrynet/tests/integration/wallet/test_commands.py +++ b/lbrynet/tests/integration/wallet/test_commands.py @@ -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)