def setUp(self): socket = stem.socket.ControlSocket() # When initially constructing a controller we need to suppress msg, so our # constructor's SETEVENTS requests pass. with patch('stem.control.BaseController.msg', Mock()): self.controller = Controller(socket)
def from_port(address='127.0.0.1', port='default'): import stem.connection if not stem.util.connection.is_valid_ipv4_address(address): raise ValueError('Invalid IP address: %s' % address) elif port != 'default' and not stem.util.connection.is_valid_port(port): raise ValueError('Invalid port: %s' % port) if port == 'default': raise ValueError('Must specify a port') else: control_port = PatchedControlPort(address, port) return Controller(control_port)
def test_broken_listener(self, stdout_mock, from_port_mock, sleep_mock): controller = Controller(stem.socket.ControlSocket()) from_port_mock.return_value = controller # emits a BW event when the example runs time.sleep() bw_event = ControlMessage.from_str('650 BW 15 25', 'EVENT', normalize=True) sleep_mock.side_effect = lambda duration: controller._handle_event( bw_event) import broken_listener self.assertEqual('start of broken_handler\n', stdout_mock.getvalue())
def setUp(self): socket = stem.socket.ControlSocket() # When initially constructing a controller we need to suppress msg, so our # constructor's SETEVENTS requests pass. with patch('stem.control.BaseController.msg', Mock()): self.controller = Controller(socket) self.circ_listener = Mock() self.controller.add_event_listener(self.circ_listener, EventType.CIRC) self.bw_listener = Mock() self.controller.add_event_listener(self.bw_listener, EventType.BW) self.malformed_listener = Mock() self.controller.add_event_listener(self.malformed_listener, MALFORMED_EVENTS)
def test_slow_listener(self, stdout_mock, from_port_mock, sleep_mock): controller = Controller(stem.socket.ControlSocket()) from_port_mock.return_value = controller # emits a BW event when the example runs time.sleep() at the end, but *not* # within the listener bw_event = ControlMessage.from_str('650 BW 15 25', 'EVENT', normalize=True) sleep_mock.side_effect = lambda duration: controller._handle_event( bw_event) if duration == 10 else None import slow_listener self.assertEqual( "processing a BW event that's 0.0 seconds old (0 more events are waiting)\n", stdout_mock.getvalue())
def setUp(self): socket = stem.socket.ControlSocket() with patch('stem.control.Controller.add_event_listener', Mock()): self.controller = Controller(socket)
def initController(stdscr, startTime): """ Spawns the controller, and related panels for it. Arguments: stdscr - curses window """ global ARM_CONTROLLER # initializes the panels stickyPanels = [ cli.headerPanel.HeaderPanel(stdscr, startTime), LabelPanel(stdscr) ] pagePanels, firstPagePanels = [], [] # first page: graph and log if CONFIG["features.panels.show.graph"]: firstPagePanels.append(cli.graphing.graphPanel.GraphPanel(stdscr)) if CONFIG["features.panels.show.log"]: expandedEvents = cli.logPanel.expandEvents(CONFIG["startup.events"]) firstPagePanels.append(cli.logPanel.LogPanel(stdscr, expandedEvents)) if firstPagePanels: pagePanels.append(firstPagePanels) # second page: connections if not CONFIG["startup.blindModeEnabled"] and CONFIG[ "features.panels.show.connection"]: pagePanels.append([cli.connections.connPanel.ConnectionPanel(stdscr)]) # third page: config if CONFIG["features.panels.show.config"]: pagePanels.append( [cli.configPanel.ConfigPanel(stdscr, cli.configPanel.State.TOR)]) # fourth page: torrc if CONFIG["features.panels.show.torrc"]: pagePanels.append( [cli.torrcPanel.TorrcPanel(stdscr, cli.torrcPanel.Config.TORRC)]) # initializes the controller ARM_CONTROLLER = Controller(stdscr, stickyPanels, pagePanels) # additional configuration for the graph panel graphPanel = ARM_CONTROLLER.getPanel("graph") if graphPanel: # statistical monitors for graph bwStats = cli.graphing.bandwidthStats.BandwidthStats() graphPanel.addStats(GraphStat.BANDWIDTH, bwStats) graphPanel.addStats(GraphStat.SYSTEM_RESOURCES, cli.graphing.resourceStats.ResourceStats()) if not CONFIG["startup.blindModeEnabled"]: graphPanel.addStats(GraphStat.CONNECTIONS, cli.graphing.connStats.ConnStats()) # sets graph based on config parameter try: initialStats = GRAPH_INIT_STATS.get(CONFIG["features.graph.type"]) graphPanel.setStats(initialStats) except ValueError: pass # invalid stats, maybe connections when in blind mode # prepopulates bandwidth values from state file if CONFIG["features.graph.bw.prepopulate"] and torTools.getConn( ).isAlive(): isSuccessful = bwStats.prepopulateFromState() if isSuccessful: graphPanel.updateInterval = 4
def setUp(self): socket = stem.socket.ControlSocket() mocking.mock_method(Controller, "add_event_listener", mocking.no_op()) self.controller = Controller(socket) mocking.revert_mocking()
def setUp(self): socket = stem.socket.ControlSocket() self.controller = Controller(socket, enable_caching=True)