Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
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)