From 315661208dd26bfa5197842cf514013f6077aa98 Mon Sep 17 00:00:00 2001 From: Lex Berezhny Date: Thu, 12 Jul 2018 15:05:24 -0400 Subject: [PATCH] integration test publishes actual file instead of just sources --- lbrynet/cryptstream/CryptStreamCreator.py | 8 +++--- tests/integration/wallet/test_commands.py | 30 +++++++++++++++-------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/lbrynet/cryptstream/CryptStreamCreator.py b/lbrynet/cryptstream/CryptStreamCreator.py index b1798806f..2a22ce01d 100644 --- a/lbrynet/cryptstream/CryptStreamCreator.py +++ b/lbrynet/cryptstream/CryptStreamCreator.py @@ -100,13 +100,13 @@ class CryptStreamCreator(object): @staticmethod def random_iv_generator(): while 1: - yield os.urandom(AES.block_size / 8) + yield os.urandom(AES.block_size // 8) def setup(self): """Create the symmetric key if it wasn't provided""" if self.key is None: - self.key = os.urandom(AES.block_size / 8) + self.key = os.urandom(AES.block_size // 8) return defer.succeed(True) @@ -121,7 +121,7 @@ class CryptStreamCreator(object): yield defer.DeferredList(self.finished_deferreds) self.blob_count += 1 - iv = self.iv_generator.next() + iv = next(self.iv_generator) final_blob = self._get_blob_maker(iv, self.blob_manager.get_blob_creator()) stream_terminator = yield final_blob.close() terminator_info = yield self._blob_finished(stream_terminator) @@ -132,7 +132,7 @@ class CryptStreamCreator(object): if self.current_blob is None: self.next_blob_creator = self.blob_manager.get_blob_creator() self.blob_count += 1 - iv = self.iv_generator.next() + iv = next(self.iv_generator) self.current_blob = self._get_blob_maker(iv, self.next_blob_creator) done, num_bytes_written = self.current_blob.write(data) data = data[num_bytes_written:] diff --git a/tests/integration/wallet/test_commands.py b/tests/integration/wallet/test_commands.py index 447af0ed3..8102888b5 100644 --- a/tests/integration/wallet/test_commands.py +++ b/tests/integration/wallet/test_commands.py @@ -1,4 +1,4 @@ -import types +import tempfile from twisted.internet import defer from orchstr8.testcase import IntegrationTestCase, d2f @@ -25,8 +25,14 @@ class FakeAnalytics: pass +class FakeBlobManager: + def get_blob_creator(self): + return None + + class FakeSession: storage = None + blob_manager = FakeBlobManager() class CommandTestCase(IntegrationTestCase): @@ -53,24 +59,30 @@ class CommandTestCase(IntegrationTestCase): await self.on_transaction_id(sendtxid) await self.blockchain.generate(1) await self.on_transaction_id(sendtxid) + self.daemon = Daemon(FakeAnalytics()) - self.daemon.wallet = self.manager + wallet_component = WalletComponent(self.daemon.component_manager) wallet_component.wallet = self.manager wallet_component._running = True + self.daemon.wallet = self.manager self.daemon.component_manager.components.add(wallet_component) + session_component = SessionComponent(self.daemon.component_manager) session_component.session = FakeSession() session_component._running = True + self.daemon.session = session_component.session self.daemon.component_manager.components.add(session_component) + file_manager = FileManager(self.daemon.component_manager) file_manager.file_manager = EncryptedFileManager(session_component.session, True) file_manager._running = True self.daemon.component_manager.components.add(file_manager) + storage_component = DatabaseComponent(self.daemon.component_manager) await d2f(storage_component.start()) - self.daemon.component_manager.components.add(storage_component) self.daemon.storage = storage_component.storage + self.daemon.component_manager.components.add(storage_component) class ChannelNewCommandTests(CommandTestCase): @@ -102,10 +114,8 @@ class PublishCommandTests(CommandTestCase): @defer.inlineCallbacks def test_publish(self): - result = yield self.daemon.jsonrpc_publish('foo', 1, sources={ - 'version': '_0_0_1', - 'sourceType': 'lbry_sd_hash', - 'source': '0' * 96, - 'contentType': '' - }) - print(result) + with tempfile.NamedTemporaryFile() as file: + file.write(b'hello world!') + file.flush() + result = yield self.daemon.jsonrpc_publish('foo', 1, file_path=file.name) + print(result)