本文整理汇总了Python中dht.crawling.ValueSpiderCrawl._handleFoundValues方法的典型用法代码示例。如果您正苦于以下问题:Python ValueSpiderCrawl._handleFoundValues方法的具体用法?Python ValueSpiderCrawl._handleFoundValues怎么用?Python ValueSpiderCrawl._handleFoundValues使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dht.crawling.ValueSpiderCrawl
的用法示例。
在下文中一共展示了ValueSpiderCrawl._handleFoundValues方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_handleFoundValues
# 需要导入模块: from dht.crawling import ValueSpiderCrawl [as 别名]
# 或者: from dht.crawling.ValueSpiderCrawl import _handleFoundValues [as 别名]
def test_handleFoundValues(self):
self._connecting_to_connected()
self.wire_protocol[self.addr1] = self.con
self.protocol.router.addContact(self.node1)
self.protocol.router.addContact(self.node2)
self.protocol.router.addContact(self.node3)
node = Node(digest("s"))
nearest = self.protocol.router.findNeighbors(node)
spider = ValueSpiderCrawl(self.protocol, node, nearest, 20, 3)
val = Value()
val.valueKey = digest("contractID")
val.serializedData = self.node1.getProto().SerializeToString()
val.ttl = 10
val1 = val.SerializeToString()
value = spider._handleFoundValues([val1])
self.assertEqual(value[0], val.SerializeToString())
# test handle multiple values
val.serializedData = self.node2.getProto().SerializeToString()
val2 = val.SerializeToString()
val.valueKey = digest("contractID2")
val3 = val.SerializeToString()
found_values = [val1, val2, val2, val3]
self.assertEqual(spider._handleFoundValues(found_values), [val3, val2])
# test store value at nearest without value
spider.nearestWithoutValue.push(self.node1)
spider._handleFoundValues(found_values)
self.clock.advance(constants.PACKET_TIMEOUT)
connection.REACTOR.runUntilCurrent()
self.assertTrue(len(self.proto_mock.send_datagram.call_args_list) > 1)
self.proto_mock.send_datagram.call_args_list = []