コード例 #1
0
    def test_missing_config(self):
        """
        Test if a required config parameter is missing
        """
        config = {'device_addr': 'localhost'}

        with self.assertRaises(PortAgentMissingConfig):
            process = PortAgentProcess.get_process(config, timeout = TEST_TIMEOUT, test_mode=True)

        config = {'device_port': '921'}

        with self.assertRaises(PortAgentMissingConfig):
            process = PortAgentProcess.get_process(config, timeout = TEST_TIMEOUT, test_mode=True)
コード例 #2
0
    def test_driver_process(self):
        """
        Test port agent process launch with default values and a good host and port
        """
        process = PortAgentProcess.get_process(self._port_config, test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, PythonPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr, self._port_config.get("device_addr"))
        self.assertEqual(process._device_port, self._port_config.get("device_port"))
        self.assertEqual(process._working_dir, '/tmp/')
        self.assertEqual(process._delimiter, ['<<','>>'])

        # Try start
        process.launch()

        # Check that it launched properly
        self.assertTrue(process.get_pid() > 0)
        self.assertTrue(process.get_data_port())
        # Python logger has no command port
        self.assertEqual(process.get_command_port(), None)

        process.stop()
        self.assertFalse(process.get_pid())
コード例 #3
0
    def test_nolaunch_process(self):
        """
        Test the port agent doesn't launch when the port agent address is not localhost
        """
        self._port_config['port_agent_addr'] = 'somewhere.else'

        process = PortAgentProcess.get_process(self._port_config, test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, UnixPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr, self._port_config.get("device_addr"))
        self.assertEqual(process._device_port, self._port_config.get("device_port"))
        self.assertEqual(process._binary_path, self._port_config.get("binary_path"))
        self.assertEqual(process._command_port, self._port_config.get("command_port"))
        self.assertEqual(process._data_port, self._port_config.get("data_port"))
        self.assertEqual(process._log_level, self._port_config.get("log_level"))
        self.assertEqual(process._pa_addr, self._port_config.get("port_agent_addr"))

        process.stop()
        
        # Try start
        process.launch()

        # Check that it launched properly
        self.assertFalse(process.get_pid())
        self.assertTrue(process.get_data_port(), PORT_AGENT_DATA_PORT)
        self.assertEqual(process.get_command_port(), PORT_AGENT_COMMAND_PORT)

        process.stop()
コード例 #4
0
    def test_launch_process(self):
        """
        Test port agent process launch with default values and a good host and port
        """
        process = PortAgentProcess.get_process(self._port_config, test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, UnixPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr, self._port_config.get("device_addr"))
        self.assertEqual(process._device_port, self._port_config.get("device_port"))
        self.assertEqual(process._binary_path, self._port_config.get("binary_path"))
        self.assertEqual(process._command_port, self._port_config.get("command_port"))
        self.assertEqual(process._data_port, self._port_config.get("data_port"))
        self.assertEqual(process._log_level, self._port_config.get("log_level"))

        process.stop()

        # Try start
        process.launch()

        # Check that it launched properly
        self.assertTrue(process.get_pid() > 0)
        self.assertTrue(process.get_data_port(), PORT_AGENT_DATA_PORT)
        self.assertEqual(process.get_command_port(), PORT_AGENT_COMMAND_PORT)

        process.stop()
コード例 #5
0
    def test_bad_host(self):
        """
        Test the port agent startup with a bad hostname.  This should eventually timeout and raise an
        exception.
        """
        host = '127.0.0.0'
        config = self._port_config
        config['device_addr'] = host

        process = PortAgentProcess.get_process(self._port_config, timeout = TEST_TIMEOUT, test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, PythonPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr, host)
        self.assertEqual(process._device_port, self._port_config.get("device_port"))
        self.assertEqual(process._working_dir, '/tmp/')
        self.assertEqual(process._delimiter, ['<<','>>'])

        # Try start
        with self.assertRaises(PortAgentTimeout):
            process.launch()

        # Verify we don't have a process lingering
        self.assertFalse(process.poll())
コード例 #6
0
    def test_launch_process(self):
        """
        Test port agent process launch with default values and a good host and port
        """
        process = PortAgentProcess.get_process(self._port_config,
                                               test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, UnixPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr,
                         self._port_config.get("device_addr"))
        self.assertEqual(process._device_port,
                         self._port_config.get("device_port"))
        self.assertEqual(process._binary_path,
                         self._port_config.get("binary_path"))
        self.assertEqual(process._command_port,
                         self._port_config.get("command_port"))
        self.assertEqual(process._data_port,
                         self._port_config.get("data_port"))
        self.assertEqual(process._log_level,
                         self._port_config.get("log_level"))

        process.stop()

        # Try start
        process.launch()

        # Check that it launched properly
        self.assertTrue(process.get_pid() > 0)
        self.assertTrue(process.get_data_port(), PORT_AGENT_DATA_PORT)
        self.assertEqual(process.get_command_port(), PORT_AGENT_COMMAND_PORT)

        process.stop()
コード例 #7
0
    def test_driver_process(self):
        """
        Test port agent process launch with default values and a good host and port
        """
        process = PortAgentProcess.get_process(self._port_config,
                                               test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, PythonPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr,
                         self._port_config.get("device_addr"))
        self.assertEqual(process._device_port,
                         self._port_config.get("device_port"))
        self.assertEqual(process._working_dir, '/tmp/')
        self.assertEqual(process._delimiter, ['<<', '>>'])

        # Try start
        process.launch()

        # Check that it launched properly
        self.assertTrue(process.get_pid() > 0)
        self.assertTrue(process.get_data_port())
        # Python logger has no command port
        self.assertEqual(process.get_command_port(), None)

        process.stop()
        self.assertFalse(process.get_pid())
コード例 #8
0
    def test_bad_host(self):
        """
        Test the port agent startup with a bad hostname.  This should eventually timeout and raise an
        exception.
        """
        host = '127.0.0.0'
        config = self._port_config
        config['device_addr'] = host

        process = PortAgentProcess.get_process(self._port_config,
                                               timeout=TEST_TIMEOUT,
                                               test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, PythonPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr, host)
        self.assertEqual(process._device_port,
                         self._port_config.get("device_port"))
        self.assertEqual(process._working_dir, '/tmp/')
        self.assertEqual(process._delimiter, ['<<', '>>'])

        # Try start
        with self.assertRaises(PortAgentTimeout):
            process.launch()

        # Verify we don't have a process lingering
        self.assertFalse(process.poll())
コード例 #9
0
    def test_bad_port(self):
        """
        Test the port agent startup with a bad port number.  This should eventually timeout and raise an
        exception.
        """
        port = 9999999999
        config = self._port_config
        config['device_port'] = port

        process = PortAgentProcess.get_process(self._port_config,
                                               timeout=TEST_TIMEOUT,
                                               test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, PythonPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr,
                         self._port_config.get("device_addr"))
        self.assertEqual(process._device_port, port)
        self.assertEqual(process._working_dir, '/tmp/')
        self.assertEqual(process._delimiter, ['<<', '>>'])

        # Try start
        with self.assertRaises(PortAgentTimeout):
            process.launch()

        self.assertFalse(process.poll())
コード例 #10
0
    def test_missing_config(self):
        """
        Test if a required config parameter is missing
        """
        config = {'device_addr': 'localhost'}

        with self.assertRaises(PortAgentMissingConfig):
            process = PortAgentProcess.get_process(config,
                                                   timeout=TEST_TIMEOUT,
                                                   test_mode=True)

        config = {'device_port': '921'}

        with self.assertRaises(PortAgentMissingConfig):
            process = PortAgentProcess.get_process(config,
                                                   timeout=TEST_TIMEOUT,
                                                   test_mode=True)
コード例 #11
0
 def test_invalid_type(self):
     """
     Test with a bogus port agent type. Should raise an exception
     """
     process = None
     config = self._port_config
     config['type'] = 'foo'
     with self.assertRaises(PortAgentLaunchException) as exp:
         process = PortAgentProcess.get_process(config, timeout = TEST_TIMEOUT, test_mode=True)
     self.assertRegexpMatches(str(exp.exception), 'unknown port agent type:')
コード例 #12
0
 def test_invalid_type(self):
     """
     Test with a bogus port agent type. Should raise an exception
     """
     process = None
     config = self._port_config
     config['type'] = 'foo'
     with self.assertRaises(PortAgentLaunchException) as exp:
         process = PortAgentProcess.get_process(config,
                                                timeout=TEST_TIMEOUT,
                                                test_mode=True)
     self.assertRegexpMatches(str(exp.exception),
                              'unknown port agent type:')
コード例 #13
0
 def test_invalid_process_type(self):
     """
     Test with a bogus process type. Should raise an exception
     """
     process = None
     config = self._port_config
     config["process_type"] = "foo"
     with self.assertRaises(PortAgentLaunchException) as exp:
         process = PortAgentProcess.get_process(config, timeout=TEST_TIMEOUT, test_mode=True)
     self.assertRegexpMatches(
         str(exp.exception),
         ".*unknown port agent process type:.*",
         msg="exception message was " + str(exp.exception),
     )
コード例 #14
0
    def test_nolaunch_process(self):
        """
        Test the port agent doesn't launch when the port agent address is not localhost
        """
        self._port_config['port_agent_addr'] = 'somewhere.else'

        process = PortAgentProcess.get_process(self._port_config,
                                               test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, UnixPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr,
                         self._port_config.get("device_addr"))
        self.assertEqual(process._device_port,
                         self._port_config.get("device_port"))
        self.assertEqual(process._binary_path,
                         self._port_config.get("binary_path"))
        self.assertEqual(process._command_port,
                         self._port_config.get("command_port"))
        self.assertEqual(process._data_port,
                         self._port_config.get("data_port"))
        self.assertEqual(process._log_level,
                         self._port_config.get("log_level"))
        self.assertEqual(process._pa_addr,
                         self._port_config.get("port_agent_addr"))

        process.stop()

        # Try start
        process.launch()

        # Check that it launched properly
        self.assertFalse(process.get_pid())
        self.assertTrue(process.get_data_port(), PORT_AGENT_DATA_PORT)
        self.assertEqual(process.get_command_port(), PORT_AGENT_COMMAND_PORT)

        process.stop()
コード例 #15
0
    def test_bad_port(self):
        """
        Test the port agent startup with a bad port number.  This should eventually timeout and raise an
        exception.
        """
        port = 9999999999
        config = self._port_config
        config['device_port'] = port

        process = PortAgentProcess.get_process(self._port_config, timeout = TEST_TIMEOUT, test_mode=True)
        self.assertTrue(process)
        self.assertTrue(isinstance(process, PythonPortAgentProcess))

        # Verify config
        self.assertEqual(process._device_addr, self._port_config.get("device_addr"))
        self.assertEqual(process._device_port, port)
        self.assertEqual(process._working_dir, '/tmp/')
        self.assertEqual(process._delimiter, ['<<','>>'])

        # Try start
        with self.assertRaises(PortAgentTimeout):
            process.launch()

        self.assertFalse(process.poll())