本文整理汇总了Python中katcp.testutils.DeviceTestServer.clear_strategies方法的典型用法代码示例。如果您正苦于以下问题:Python DeviceTestServer.clear_strategies方法的具体用法?Python DeviceTestServer.clear_strategies怎么用?Python DeviceTestServer.clear_strategies使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类katcp.testutils.DeviceTestServer
的用法示例。
在下文中一共展示了DeviceTestServer.clear_strategies方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestDeviceServerClientIntegrated
# 需要导入模块: from katcp.testutils import DeviceTestServer [as 别名]
# 或者: from katcp.testutils.DeviceTestServer import clear_strategies [as 别名]
#.........这里部分代码省略.........
self.server.start(timeout=0.1, daemon=True)
self.assertTrue(self.server._thread.isDaemon())
def test_excepthook(self):
"""Test passing in an excepthook to server start method."""
exceptions = []
except_event = threading.Event()
def excepthook(etype, value, traceback):
"""Keep track of exceptions."""
exceptions.append(etype)
except_event.set()
self.server.stop(timeout=0.1)
self.server.join(timeout=1.5)
self.server.start(timeout=0.1, excepthook=excepthook)
# force exception by deleteing _running
old_running = self.server._running
try:
del self.server._running
except_event.wait(1.5)
self.assertEqual(exceptions, [AttributeError])
finally:
self.server._running = old_running
# close socket -- server didn't shut down correctly
self.server._sock.close()
self.server.stop(timeout=0.1)
self.server.join(timeout=1.5)
except_event.clear()
del exceptions[:]
self.server.start(timeout=0.1, excepthook=excepthook)
# force exception in sample reactor and check that it makes
# it back up
reactor = self.server._reactor
old_stop = reactor._stopEvent
try:
del reactor._stopEvent
reactor._wakeEvent.set()
except_event.wait(0.1)
self.assertEqual(exceptions, [AttributeError])
finally:
reactor._stopEvent = old_stop
# close socket -- server didn't shut down correctly
self.server._sock.close()
def test_sampling(self):
"""Test sensor sampling."""
get_msgs = self.client.message_recorder(
blacklist=self.BLACKLIST, replies=True)
self.client.wait_protocol(timeout=1)
self.client.request(katcp.Message.request(
"sensor-sampling", "an.int", "period", 1/32.))
# Wait for the request reply and for the sensor update messages to
# arrive. We expect update one the moment the sensor-sampling request is
# made, then four more over 4/32. of a second, resutling in 6
# messages. Wait half a period longer just to be sure we get everything.
self.assertTrue(get_msgs.wait_number(6, timeout=4.5/32.))
self.client.assert_request_succeeds("sensor-sampling", "an.int", "none")
# Wait for reply to above request
get_msgs.wait_number(7)
msgs = get_msgs()
updates = [x for x in msgs if x.name == "sensor-status"]
others = [x for x in msgs if x.name != "sensor-status"]
self.assertTrue(abs(len(updates) - 5) < 2,
"Expected 5 informs, saw %d." % len(updates))
self._assert_msgs_equal(others, [
r"!sensor-sampling[1] ok an.int period %s" % (1/32.),
r"!sensor-sampling[2] ok an.int none",
])
self.assertEqual(updates[0].arguments[1:],
["1", "an.int", "nominal", "3"])
## Now clear the strategies on this sensor
# There should only be on connection to the server, so it should be
# the test client
client_conn = self.server._sock_connections.values()[0]
self.server.clear_strategies(client_conn)
self.client.assert_request_succeeds("sensor-sampling", "an.int",
args_equal=["an.int", "none"])
# Check that we did not accidentally clobber the strategy datastructure
# in the proccess
self.client.assert_request_succeeds(
"sensor-sampling", "an.int", "period", 0.125)
def test_add_remove_sensors(self):
"""Test adding and removing sensors from a running device."""
an_int = self.server._sensors["an.int"]
self.server.remove_sensor(an_int)
self.server.add_sensor(an_int)
self.test_sampling()