def init_ports(self, tor_cfg, socks_port, control_port):
        """Check SOCKS port and Tor config inputs."""
        if tor_cfg == cm.LAUNCH_NEW_TBB_TOR:
            raise TBDriverConfigError(
                """`LAUNCH_NEW_TBB_TOR` config is not supported anymore.
                Use USE_RUNNING_TOR or USE_STEM""")

        if tor_cfg not in [cm.USE_RUNNING_TOR, cm.USE_STEM]:
            raise TBDriverConfigError("Unrecognized tor_cfg: %s" % tor_cfg)

        if socks_port is None:
            if tor_cfg == cm.USE_RUNNING_TOR:
                socks_port = cm.DEFAULT_SOCKS_PORT  # 9050
            else:
                socks_port = cm.STEM_SOCKS_PORT
        if control_port is None:
            if tor_cfg == cm.USE_RUNNING_TOR:
                control_port = cm.DEFAULT_CONTROL_PORT
            else:
                control_port = cm.STEM_CONTROL_PORT

        if not is_busy(socks_port):
            raise TBDriverPortError("SOCKS port %s is not listening"
                                    % socks_port)

        self.socks_port = socks_port
        self.control_port = control_port
Exemple #2
0
def launch_tor():
    temp_data_dir = tempfile.mkdtemp()
    torrc = {'ControlPort': str(cm.DEFAULT_CONTROL_PORT),
             'SOCKSPort': str(cm.DEFAULT_SOCKS_PORT),
             'DataDirectory': temp_data_dir}
    if not is_busy(cm.DEFAULT_SOCKS_PORT):
        launch_tbb_tor_with_stem_fixture(tbb_path=TBB_PATH, torrc=torrc)
 def occupy_port(self, port_no):
     """Occupy the given port to simulate a port conflict."""
     if is_busy(port_no):  # already occupied, nothing to do
         return
     skt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     skt.bind(("localhost", port_no))
     skt.listen(1)
     self.open_sockets.append(skt)
    def test_running_with_system_tor(self):
        if not is_busy(cm.DEFAULT_SOCKS_PORT):
            self.fail("System Tor doesn't appear to be running.")

        with TBDriverFixture(TBB_PATH,
                             tor_cfg=cm.USE_RUNNING_TOR) as driver:
            driver.load_url_ensure(cm.CHECK_TPO_URL)
            driver.find_element_by("h1.on")
 def occupy_port(self, port_no):
     """Occupy the given port to simulate a port conflict."""
     if is_busy(port_no):  # already occupied, nothing to do
         return
     skt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     skt.bind(("localhost", port_no))
     skt.listen(1)
     self.open_sockets.append(skt)
def launch_tor():
    tor_process = None
    temp_data_dir = tempfile.mkdtemp()
    torrc = {'ControlPort': str(cm.STEM_CONTROL_PORT),
             'SOCKSPort': str(cm.STEM_SOCKS_PORT),
             'DataDirectory': temp_data_dir}
    if not is_busy(cm.STEM_SOCKS_PORT):
        tor_process = launch_tbb_tor_with_stem_fixture(tbb_path=TBB_PATH,
                                                       torrc=torrc)
    return (temp_data_dir, tor_process)
Exemple #7
0
    def test_running_with_system_tor(self):
        if not is_busy(cm.DEFAULT_SOCKS_PORT):
            if cm.TRAVIS:  # Tor should be running on CI
                self.fail("Skipping. Start system Tor to run this test.")
            else:
                pytest.skip("Skipping. Start the system Tor to run this test.")

        with TBDriverFixture(TBB_PATH, tor_cfg=cm.USE_RUNNING_TOR) as driver:
            driver.load_url_ensure(cm.CHECK_TPO_URL)
            driver.find_element_by("h1.on")
    def test_running_with_system_tor(self):
        if not is_busy(cm.DEFAULT_SOCKS_PORT):
            self.fail("System Tor doesn't appear to be running.")

        with TBDriverFixture(TBB_PATH,
                             tor_cfg=cm.USE_RUNNING_TOR,
                             socks_port=cm.DEFAULT_SOCKS_PORT,
                             control_port=cm.DEFAULT_CONTROL_PORT) as driver:
            driver.load_url_ensure(cm.CHECK_TPO_URL)
            driver.find_element_by("h1.on")
Exemple #9
0
def launch_tor():
    tor_process = None
    temp_data_dir = tempfile.mkdtemp()
    torrc = {
        'ControlPort': str(cm.STEM_CONTROL_PORT),
        'SOCKSPort': str(cm.STEM_SOCKS_PORT),
        'DataDirectory': temp_data_dir
    }
    if not is_busy(cm.STEM_SOCKS_PORT):
        tor_process = launch_tbb_tor_with_stem_fixture(tbb_path=TBB_PATH,
                                                       torrc=torrc)
    return (temp_data_dir, tor_process)
Exemple #10
0
    def init_ports(self, tor_cfg, socks_port, control_port):
        """Check SOCKS port and Tor config inputs."""
        if tor_cfg not in [cm.USE_RUNNING_TOR, cm.LAUNCH_NEW_TBB_TOR]:
            raise TBDriverConfigError("Unrecognized tor_cfg: %s" % tor_cfg)

        if socks_port is None:
            if tor_cfg == cm.USE_RUNNING_TOR:
                socks_port = cm.DEFAULT_SOCKS_PORT  # 9050
            else:
                socks_port = cm.TBB_SOCKS_PORT  # 9150

        if control_port is None:
            if tor_cfg == cm.USE_RUNNING_TOR:
                control_port = cm.DEFAULT_CONTROL_PORT  # 9051
            else:
                control_port = cm.TBB_CONTROL_PORT  # 9151

        if tor_cfg == cm.LAUNCH_NEW_TBB_TOR:
            if is_busy(socks_port):
                raise TBDriverPortError("SOCKS port %s is already in use" %
                                        socks_port)
            if is_busy(control_port):
                raise TBDriverPortError("Control port %s is already in use" %
                                        control_port)
            if socks_port != cm.TBB_SOCKS_PORT or\
                    control_port != cm.TBB_CONTROL_PORT:
                # No support for launching TBB's Tor on a custom port, use Stem
                raise TBDriverPortError("Can only launch Tor on TBB's default"
                                        "ports (9150-9151). Use Stem for"
                                        "launching Tor on a custom ports")
        elif tor_cfg == cm.USE_RUNNING_TOR:
            if not is_busy(socks_port):
                raise TBDriverPortError("SOCKS port %s is not listening" %
                                        socks_port)

        self.socks_port = socks_port
        self.control_port = control_port
    def init_ports(self, tor_cfg, socks_port, control_port):
        """Check SOCKS port and Tor config inputs."""
        if tor_cfg not in [cm.USE_RUNNING_TOR, cm.LAUNCH_NEW_TBB_TOR]:
            raise TBDriverConfigError("Unrecognized tor_cfg: %s" % tor_cfg)

        if socks_port is None:
            if tor_cfg == cm.USE_RUNNING_TOR:
                socks_port = cm.DEFAULT_SOCKS_PORT  # 9050
            else:
                socks_port = cm.TBB_SOCKS_PORT  # 9150

        if control_port is None:
            if tor_cfg == cm.USE_RUNNING_TOR:
                control_port = cm.DEFAULT_CONTROL_PORT  # 9051
            else:
                control_port = cm.TBB_CONTROL_PORT  # 9151

        if tor_cfg == cm.LAUNCH_NEW_TBB_TOR:
            if is_busy(socks_port):
                raise TBDriverPortError("SOCKS port %s is already in use"
                                        % socks_port)
            if is_busy(control_port):
                raise TBDriverPortError("Control port %s is already in use"
                                        % control_port)
            if socks_port != cm.TBB_SOCKS_PORT or\
                    control_port != cm.TBB_CONTROL_PORT:
                # No support for launching TBB's Tor on a custom port, use Stem
                raise TBDriverPortError("Can only launch Tor on TBB's default"
                                        "ports (9150-9151). Use Stem for"
                                        "launching Tor on a custom ports")
        elif tor_cfg == cm.USE_RUNNING_TOR:
            if not is_busy(socks_port):
                raise TBDriverPortError("SOCKS port %s is not listening"
                                        % socks_port)

        self.socks_port = socks_port
        self.control_port = control_port
Exemple #12
0
    def change_default_tor_cfg(self, kwargs):
        """Use system Tor if the caller doesn't specifically wants
        to launch a new TBB Tor.

        if FORCE_TB_LOGS_DURING_TESTS is True add a log file arg to make
        it easier to debug the failures.

        This makes tests faster and more robust against network
        issues since otherwise we'd have to launch a new Tor process
        for each test.
        """

        if kwargs.get("tor_cfg") is None and is_busy(cm.DEFAULT_SOCKS_PORT):
            kwargs["tor_cfg"] = cm.USE_RUNNING_TOR
        if FORCE_TB_LOGS_DURING_TESTS and\
                kwargs.get("tbb_logfile_path") is None:
            _, self.log_file = tempfile.mkstemp()
            kwargs["tbb_logfile_path"] = self.log_file
Exemple #13
0
    def change_default_tor_cfg(self, kwargs):
        """Use the Tor process that we started with at the beginning of the
        tests if the caller doesn't want to launch a new TBB Tor.

        This makes tests faster and more robust against network
        issues since otherwise we'd have to launch a new Tor process
        for each test.

        if FORCE_TB_LOGS_DURING_TESTS is True add a log file arg to make
        it easier to debug the failures.

        """

        if kwargs.get("tor_cfg") is None and is_busy(cm.STEM_SOCKS_PORT):
            kwargs["tor_cfg"] = cm.USE_RUNNING_TOR
            kwargs["socks_port"] = cm.STEM_SOCKS_PORT
            kwargs["control_port"] = cm.STEM_CONTROL_PORT

        if FORCE_TB_LOGS_DURING_TESTS and\
                kwargs.get("tbb_logfile_path") is None:
            _, self.log_file = tempfile.mkstemp()
            kwargs["tbb_logfile_path"] = self.log_file
    def change_default_tor_cfg(self, kwargs):
        """Use the Tor process that we started with at the beginning of the
        tests if the caller doesn't want to launch a new TBB Tor.

        This makes tests faster and more robust against network
        issues since otherwise we'd have to launch a new Tor process
        for each test.

        if FORCE_TB_LOGS_DURING_TESTS is True add a log file arg to make
        it easier to debug the failures.

        """

        if kwargs.get("tor_cfg") is None and is_busy(cm.STEM_SOCKS_PORT):
            kwargs["tor_cfg"] = cm.USE_RUNNING_TOR
            kwargs["socks_port"] = cm.STEM_SOCKS_PORT
            kwargs["control_port"] = cm.STEM_CONTROL_PORT

        if FORCE_TB_LOGS_DURING_TESTS and\
                kwargs.get("tbb_logfile_path") is None:
            _, self.log_file = tempfile.mkstemp()
            kwargs["tbb_logfile_path"] = self.log_file