本文整理汇总了Python中txtorcon.addrmap.AddrMap.find方法的典型用法代码示例。如果您正苦于以下问题:Python AddrMap.find方法的具体用法?Python AddrMap.find怎么用?Python AddrMap.find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类txtorcon.addrmap.AddrMap
的用法示例。
在下文中一共展示了AddrMap.find方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_parse
# 需要导入模块: from txtorcon.addrmap import AddrMap [as 别名]
# 或者: from txtorcon.addrmap.AddrMap import find [as 别名]
def test_parse(self):
"""
Make sure it's parsing things properly.
"""
now = datetime.datetime.now() + datetime.timedelta(seconds=10)
nowutc = datetime.datetime.utcnow() + datetime.timedelta(seconds=10)
# we need to not-barf on extra args as per control-spec.txt
line = 'www.example.com 72.30.2.43 "%s" EXPIRES="%s" FOO=bar BAR=baz' % (now.strftime(self.fmt), nowutc.strftime(self.fmt))
am = AddrMap()
am.update(line)
addr = am.find('www.example.com')
self.assertTrue(addr.ip == '72.30.2.43' or addr.ip.exploded == '72.30.2.43')
# maybe not the most robust, should convert to
# seconds-since-epoch instead? the net result of the parsing
# is we've rounded to seconds...
self.assertEqual(addr.expires.ctime(), nowutc.ctime())
line = 'www.example.com 72.30.2.43 "%s" "%s"' % (now.strftime(self.fmt), nowutc.strftime(self.fmt))
am.update(line)
self.assertEqual(addr.expires.ctime(), nowutc.ctime())
# this will have resulted in an expiry call, which we need to
# cancel to keep the reactor clean. for consistency, we use
# the IReactorTime interface from AddrMap
am.scheduler.getDelayedCalls()[0].cancel()
示例2: test_expires_with_update
# 需要导入模块: from txtorcon.addrmap import AddrMap [as 别名]
# 或者: from txtorcon.addrmap.AddrMap import find [as 别名]
def test_expires_with_update(self):
"""
This test updates the expiry time and checks that we properly
delay our expiry callback.
"""
clock = task.Clock()
am = AddrMap()
am.scheduler = IReactorTime(clock)
# now do an actual update to an existing Addr entry.
now = datetime.datetime.now() + datetime.timedelta(seconds=10)
nowutc = datetime.datetime.utcnow() + datetime.timedelta(seconds=10)
line = 'www.example.com 72.30.2.43 "%s" EXPIRES="%s"' % (now.strftime(self.fmt), nowutc.strftime(self.fmt))
am.update(line)
self.assertTrue(am.find('www.example.com'))
# the update
now = datetime.datetime.now() + datetime.timedelta(seconds=20)
nowutc = datetime.datetime.utcnow() + datetime.timedelta(seconds=20)
line = 'www.example.com 72.30.2.43 "%s" EXPIRES="%s"' % (now.strftime(self.fmt), nowutc.strftime(self.fmt))
am.update(line)
self.assertTrue('www.example.com' in am.addr)
# advance time by the old expiry value and we should still
# find the entry
clock.advance(10)
self.assertTrue('www.example.com' in am.addr)
# ...but advance past the new expiry (another 10 seconds) and
# it should vanish
clock.advance(10)
self.assertTrue('www.example.com' not in am.addr)
示例3: test_listeners
# 需要导入模块: from txtorcon.addrmap import AddrMap [as 别名]
# 或者: from txtorcon.addrmap.AddrMap import find [as 别名]
def test_listeners(self):
self.expires = []
self.addrmap = []
clock = task.Clock()
am = AddrMap()
am.scheduler = IReactorTime(clock)
am.add_listener(self)
now = datetime.datetime.now() + datetime.timedelta(seconds=10)
nowutc = datetime.datetime.utcnow() + datetime.timedelta(seconds=10)
line = 'www.example.com 72.30.2.43 "%s" EXPIRES="%s"' % (now.strftime(self.fmt), nowutc.strftime(self.fmt))
am.update(line)
# see if our listener got an update
a = am.find('www.example.com')
self.assertEqual(self.addrmap, [a])
# advance time past when the expiry should have occurred
clock.advance(10)
# check that our listener got an expires event
self.assertEqual(self.expires, ['www.example.com'])