Example #1
0
 def test_getinfo_config_file(self):
   """
   Parses the 'GETINFO config-file' response.
   """
   
   runner = test.runner.get_runner()
   torrc_dst = runner.get_torrc_path()
   
   with runner.get_tor_socket() as control_socket:
     control_socket.send("GETINFO config-file")
     config_file_response = control_socket.recv()
     self.assertEquals("config-file=%s\nOK" % torrc_dst, str(config_file_response))
     self.assertEquals(["config-file=%s" % torrc_dst, "OK"], list(config_file_response))
     self.assertEquals("250-config-file=%s\r\n250 OK\r\n" % torrc_dst, config_file_response.raw_content())
     self.assertEquals([("250", "-", "config-file=%s" % torrc_dst), ("250", " ", "OK")], config_file_response.content())
Example #2
0
  def test_getinfo_config_file(self):
    """
    Parses the 'GETINFO config-file' response.
    """

    runner = test.runner.get_runner()
    torrc_dst = runner.get_torrc_path()

    with runner.get_tor_socket() as control_socket:
      control_socket.send('GETINFO config-file')
      config_file_response = control_socket.recv()
      self.assertEqual('config-file=%s\nOK' % torrc_dst, str(config_file_response))
      self.assertEqual(['config-file=%s' % torrc_dst, 'OK'], list(config_file_response))
      self.assertEqual('250-config-file=%s\r\n250 OK\r\n' % torrc_dst, config_file_response.raw_content())
      self.assertEqual([('250', '-', 'config-file=%s' % torrc_dst), ('250', ' ', 'OK')], config_file_response.content())
Example #3
0
    def test_getinfo(self):
        """
    Exercises GETINFO with valid and invalid queries.
    """

        if test.runner.require_control(self):
            return

        runner = test.runner.get_runner()

        with runner.get_tor_controller() as controller:
            # successful single query

            torrc_path = runner.get_torrc_path()
            self.assertEqual(torrc_path, controller.get_info('config-file'))
            self.assertEqual(torrc_path,
                             controller.get_info('config-file', 'ho hum'))

            expected = {'config-file': torrc_path}
            self.assertEqual(expected, controller.get_info(['config-file']))
            self.assertEqual(expected,
                             controller.get_info(['config-file'], 'ho hum'))

            # successful batch query, we don't know the values so just checking for
            # the keys

            getinfo_params = set(['version', 'config-file', 'config/names'])
            self.assertEqual(
                getinfo_params,
                set(
                    controller.get_info(
                        ['version', 'config-file', 'config/names']).keys()))

            # non-existant option

            self.assertRaises(stem.ControllerError, controller.get_info,
                              'blarg')
            self.assertEqual('ho hum', controller.get_info('blarg', 'ho hum'))

            # empty input

            self.assertRaises(stem.ControllerError, controller.get_info, '')
            self.assertEqual('ho hum', controller.get_info('', 'ho hum'))

            self.assertEqual({}, controller.get_info([]))
            self.assertEqual({}, controller.get_info([], {}))
Example #4
0
 def test_saveconf(self):
   if test.runner.require_control(self): return
   
   runner = test.runner.get_runner()
   
   # only testing for success, since we need to run out of disk space to test
   # for failure
   with runner.get_tor_controller() as controller:
     oldconf = runner.get_torrc_contents()
     
     try:
       controller.set_conf("ContactInfo", "confsaved")
       controller.save_conf()
       with file(runner.get_torrc_path()) as torrcfile:
         self.assertTrue("\nContactInfo confsaved\n" in torrcfile.read())
     finally:
       controller.load_conf(oldconf)
       controller.save_conf()
Example #5
0
  def test_getinfo_config_file(self):
    """
    Parses the 'GETINFO config-file' response.
    """

    if test.runner.require_control(self):
      return

    runner = test.runner.get_runner()
    torrc_dst = runner.get_torrc_path()

    with runner.get_tor_socket() as control_socket:
      control_socket.send('GETINFO config-file')
      config_file_response = control_socket.recv()
      self.assertEqual('config-file=%s\nOK' % torrc_dst, str(config_file_response))
      self.assertEqual(['config-file=%s' % torrc_dst, 'OK'], list(config_file_response))
      self.assertEqual('250-config-file=%s\r\n250 OK\r\n' % torrc_dst, config_file_response.raw_content())
      self.assertEqual([('250', '-', 'config-file=%s' % torrc_dst), ('250', ' ', 'OK')], config_file_response.content())
Example #6
0
  def test_saveconf(self):
    runner = test.runner.get_runner()

    # only testing for success, since we need to run out of disk space to test
    # for failure
    with runner.get_tor_controller() as controller:
      oldconf = runner.get_torrc_contents()

      try:
        controller.set_conf('ContactInfo', 'confsaved')
        controller.save_conf()

        with open(runner.get_torrc_path()) as torrcfile:
          self.assertTrue('\nContactInfo confsaved\n' in torrcfile.read())
      finally:
        controller.load_conf(oldconf)
        controller.save_conf()
        controller.reset_conf('__OwningControllerProcess')
Example #7
0
    def test_getinfo(self):
        """
    Exercises GETINFO with valid and invalid queries.
    """

        if test.runner.require_control(self):
            return

        runner = test.runner.get_runner()

        with runner.get_tor_controller() as controller:
            # successful single query

            torrc_path = runner.get_torrc_path()
            self.assertEqual(torrc_path, controller.get_info("config-file"))
            self.assertEqual(torrc_path, controller.get_info("config-file", "ho hum"))

            expected = {"config-file": torrc_path}
            self.assertEqual(expected, controller.get_info(["config-file"]))
            self.assertEqual(expected, controller.get_info(["config-file"], "ho hum"))

            # successful batch query, we don't know the values so just checking for
            # the keys

            getinfo_params = set(["version", "config-file", "config/names"])
            self.assertEqual(
                getinfo_params, set(controller.get_info(["version", "config-file", "config/names"]).keys())
            )

            # non-existant option

            self.assertRaises(stem.ControllerError, controller.get_info, "blarg")
            self.assertEqual("ho hum", controller.get_info("blarg", "ho hum"))

            # empty input

            self.assertRaises(stem.ControllerError, controller.get_info, "")
            self.assertEqual("ho hum", controller.get_info("", "ho hum"))

            self.assertEqual({}, controller.get_info([]))
            self.assertEqual({}, controller.get_info([], {}))
Example #8
0
    def test_saveconf(self):
        if test.runner.require_control(self):
            return

        runner = test.runner.get_runner()

        # only testing for success, since we need to run out of disk space to test
        # for failure
        with runner.get_tor_controller() as controller:
            oldconf = runner.get_torrc_contents()

            try:
                controller.set_conf("ContactInfo", "confsaved")
                controller.save_conf()

                with open(runner.get_torrc_path()) as torrcfile:
                    self.assertTrue(
                        "\nContactInfo confsaved\n" in torrcfile.read())
            finally:
                controller.load_conf(oldconf)
                controller.save_conf()
Example #9
0
    def test_getinfo_config_file(self):
        """
    Parses the 'GETINFO config-file' response.
    """

        if test.runner.require_control(self):
            return

        runner = test.runner.get_runner()
        torrc_dst = runner.get_torrc_path()

        with runner.get_tor_socket() as control_socket:
            control_socket.send("GETINFO config-file")
            config_file_response = control_socket.recv()
            self.assertEquals("config-file=%s\nOK" % torrc_dst,
                              str(config_file_response))
            self.assertEquals(["config-file=%s" % torrc_dst, "OK"],
                              list(config_file_response))
            self.assertEquals("250-config-file=%s\r\n250 OK\r\n" % torrc_dst,
                              config_file_response.raw_content())
            self.assertEquals([("250", "-", "config-file=%s" % torrc_dst),
                               ("250", " ", "OK")],
                              config_file_response.content())
Example #10
0
  def test_getinfo(self):
    """
    Exercises GETINFO with valid and invalid queries.
    """

    runner = test.runner.get_runner()

    with runner.get_tor_controller() as controller:
      # successful single query

      torrc_path = runner.get_torrc_path()
      self.assertEqual(torrc_path, controller.get_info('config-file'))
      self.assertEqual(torrc_path, controller.get_info('config-file', 'ho hum'))

      expected = {'config-file': torrc_path}
      self.assertEqual(expected, controller.get_info(['config-file']))
      self.assertEqual(expected, controller.get_info(['config-file'], 'ho hum'))

      # successful batch query, we don't know the values so just checking for
      # the keys

      getinfo_params = set(['version', 'config-file', 'config/names'])
      self.assertEqual(getinfo_params, set(controller.get_info(['version', 'config-file', 'config/names']).keys()))

      # non-existant option

      self.assertRaises(stem.ControllerError, controller.get_info, 'blarg')
      self.assertEqual('ho hum', controller.get_info('blarg', 'ho hum'))

      # empty input

      self.assertRaises(stem.ControllerError, controller.get_info, '')
      self.assertEqual('ho hum', controller.get_info('', 'ho hum'))

      self.assertEqual({}, controller.get_info([]))
      self.assertEqual({}, controller.get_info([], {}))