def setUp(self): mock_conf_settings(self) self.num_blobs = 10 self.blobs_to_announce = [] for i in range(0, self.num_blobs): self.blobs_to_announce.append(random_lbry_hash()) self.dht_node = MocDHTNode() self.clock = self.dht_node.clock utils.call_later = self.clock.callLater self.storage = MocStorage(self.blobs_to_announce) self.announcer = DHTHashAnnouncer(self.dht_node, self.storage)
class DHTHashAnnouncerTest(unittest.TestCase): @defer.inlineCallbacks def setUp(self): from lbrynet.conf import initialize_settings initialize_settings() self.num_blobs = 10 self.blobs_to_announce = [] for i in range(0, self.num_blobs): self.blobs_to_announce.append(random_lbry_hash()) self.dht_node = MocDHTNode() self.dht_node.peerPort = 3333 self.dht_node.clock = reactor self.db_dir = tempfile.mkdtemp() self.storage = SQLiteStorage(self.db_dir) yield self.storage.setup() self.announcer = DHTHashAnnouncer(self.dht_node, self.storage, 10) for blob_hash in self.blobs_to_announce: yield self.storage.add_completed_blob(blob_hash, 100, 0, 1) @defer.inlineCallbacks def tearDown(self): self.dht_node.call_later_manager.stop() yield self.storage.stop() yield threads.deferToThread(shutil.rmtree, self.db_dir) @defer.inlineCallbacks def test_announce_fail(self): # test what happens when node.announceHaveBlob() returns empty dict self.dht_node.announce_will_fail = True d = yield self.announcer.manage() yield d @defer.inlineCallbacks def test_basic(self): d = self.announcer.immediate_announce(self.blobs_to_announce) self.assertEqual(len(self.announcer.hash_queue), self.num_blobs) yield d self.assertEqual(self.dht_node.blobs_announced, self.num_blobs) self.assertEqual(len(self.announcer.hash_queue), 0) @defer.inlineCallbacks def test_immediate_announce(self): # Test that immediate announce puts a hash at the front of the queue d = self.announcer.immediate_announce(self.blobs_to_announce) self.assertEqual(len(self.announcer.hash_queue), self.num_blobs) blob_hash = random_lbry_hash() self.announcer.immediate_announce([blob_hash]) self.assertEqual(len(self.announcer.hash_queue), self.num_blobs + 1) self.assertEqual(blob_hash, self.announcer.hash_queue[-1]) yield d
def setUp(self): from lbrynet.conf import initialize_settings initialize_settings() self.num_blobs = 10 self.blobs_to_announce = [] for i in range(0, self.num_blobs): self.blobs_to_announce.append(random_lbry_hash()) self.dht_node = MocDHTNode() self.dht_node.peerPort = 3333 self.dht_node.clock = reactor self.db_dir = tempfile.mkdtemp() self.storage = SQLiteStorage(self.db_dir) yield self.storage.setup() self.announcer = DHTHashAnnouncer(self.dht_node, self.storage, 10) for blob_hash in self.blobs_to_announce: yield self.storage.add_completed_blob(blob_hash, 100, 0, 1)
class DHTHashAnnouncerTest(unittest.TestCase): def setUp(self): mock_conf_settings(self) self.num_blobs = 10 self.blobs_to_announce = [] for i in range(0, self.num_blobs): self.blobs_to_announce.append(random_lbry_hash()) self.dht_node = MocDHTNode() self.clock = self.dht_node.clock utils.call_later = self.clock.callLater self.storage = MocStorage(self.blobs_to_announce) self.announcer = DHTHashAnnouncer(self.dht_node, self.storage) @defer.inlineCallbacks def test_immediate_announce(self): announce_d = self.announcer.immediate_announce(self.blobs_to_announce) self.assertEqual(self.announcer.hash_queue_size(), self.num_blobs) self.clock.advance(1) yield announce_d self.assertEqual(self.dht_node.blobs_announced, self.num_blobs) self.assertEqual(self.announcer.hash_queue_size(), 0)