def test_manager_lifecycle(self): manager = JSHostManager(status=read_status_from_config_file( ConfigFiles.MANAGER_LIFECYCLE, extra_args=('--manager', )), config_file=ConfigFiles.MANAGER_LIFECYCLE) self.assertEqual(manager.get_config()['port'], 34567) self.assertRaises(ConnectionError, manager.connect) self.assertFalse(manager.is_running()) self.assertRaises(ConnectionError, manager.connect) # Spawn the process in the background spawn_detached_manager(config_file=ConfigFiles.MANAGER_LIFECYCLE) self.assertTrue(manager.is_running()) manager.connect() self.assertTrue(manager.is_running()) manager.stop() self.assertRaises(ConnectionError, manager.connect) self.assertFalse(manager.is_running())
def test_managers_stop_shortly_after_the_last_host_has_disconnected(self): manager = spawn_detached_manager( config_file=ConfigFiles.MANAGER_LIFECYCLE) host1 = spawn_managed_host(ConfigFiles.MANAGER_LIFECYCLE, manager) self.assertTrue(host1.is_running()) host2 = spawn_managed_host(ConfigFiles.MANAGER, manager) self.assertNotEqual(host1.get_config()['port'], host2.get_config()['port']) self.assertTrue(host2.is_running()) host1.disconnect() time.sleep(0.2) self.assertFalse(host1.is_running()) self.assertTrue(manager.is_running()) data = manager.request_host_status(host1.config_file) self.assertFalse(data['started']) self.assertTrue(manager.is_running()) host2.disconnect() time.sleep(0.2) self.assertFalse(host2.is_running()) self.assertFalse(manager.is_running())
def test_if_a_managed_host_crashes_the_exception_points_to_the_logfile( self): manager = spawn_detached_manager(ConfigFiles.MANAGED_HOST_LIFECYCLE) host = spawn_managed_host(ConfigFiles.MANAGED_HOST_LIFECYCLE, manager) self.assertEqual(host.send_json_request('function/test').text, 'test') self.assertIsNotNone(host.logfile) host.stop() try: host.send_json_request('function/test') except ProcessError as e: self.assertIn( '{} appears to have crashed, you can inspect the log file at {}' .format( host.get_name(), host.logfile, ), str(e), ) manager.stop()
def test_managed_host_lifecycle(self): manager = spawn_detached_manager(ConfigFiles.MANAGED_HOST_LIFECYCLE) self.assertEqual(manager.get_config()['port'], 23456) self.assertTrue(manager.is_running()) host1 = spawn_managed_host(manager.config_file, manager, connect_on_start=False) self.assertNotEqual(host1.get_config()['port'], manager.get_config()['port']) self.assertTrue(host1.is_running()) host1.connect() self.assertTrue(host1.is_running()) res = host1.send_json_request('function/test') self.assertEqual(res.text, 'test') host1.disconnect() self.assertTrue(host1.is_running()) host2 = spawn_managed_host(manager.config_file, manager) self.assertIsInstance(host2.logfile, six.string_types) self.assertEqual(host2.get_name(), host1.get_name()) self.assertEqual(host2.get_config()['port'], host1.get_config()['port']) self.assertEqual(host2.logfile, host1.logfile) res = host2.send_json_request('function/test') self.assertEqual(res.text, 'test') host2.disconnect() self.assertTrue(host1.is_running()) host2.stop() self.assertFalse(host2.is_running()) self.assertRaises(UnexpectedResponse, host2.connect) manager.stop()
def setUpClass(cls): cls.manager = spawn_detached_manager(config_file=ConfigFiles.MANAGER)
def setUpClass(cls): cls.manager = spawn_detached_manager(ConfigFiles.BASE_JS) cls.host = spawn_managed_host(ConfigFiles.BASE_JS, cls.manager)