Beispiel #1
0
    def test_get_root_services_with_invalid_project(self):
        os.environ[environment.
                   LIMIS_PROJECT_NAME_ENVIRONMENT_VARIABLE] = 'invalid_project'

        with self.assertRaises(AttributeError):
            get_root_services()

        os.environ.pop(environment.LIMIS_PROJECT_NAME_ENVIRONMENT_VARIABLE)
Beispiel #2
0
    def test_get_root_services_with_invalid_module(self):
        os.environ[environment.
                   LIMIS_PROJECT_NAME_ENVIRONMENT_VARIABLE] = 'test_project'

        path = Path(
            __file__).parent / 'data/settings_root_services_invalid.ini'
        os.environ[environment.
                   LIMIS_PROJECT_SETTINGS_ENVIRONMENT_VARIABLE] = str(path)

        with self.assertRaises(ImportError):
            get_root_services()

        os.environ.pop(environment.LIMIS_PROJECT_NAME_ENVIRONMENT_VARIABLE)
        os.environ.pop(environment.LIMIS_PROJECT_SETTINGS_ENVIRONMENT_VARIABLE)
Beispiel #3
0
    def run(self, args: List[str]) -> int:
        """
        Runs the server command. Will start the HTTP server on the default port with no arguments.

        :param args: List of arguments.
        :return: Command line exit code, defaults to SUCCESS.
        """

        try:
            self.parse_arguments(args)
        except ValueError:
            return self.invalid_arguments()

        initialize_logging(debug=self.debug)

        root_services = get_root_services()

        services_router = ServicesRouter(root_services.context_root,
                                         root_services.services)

        if self.http:
            http_thread = Thread(target=Server._run_http_server,
                                 kwargs={
                                     'router': services_router.http_router,
                                     'port': self.http_port
                                 })
            http_thread.daemon = True
            http_thread.start()
            time.sleep(1)

        if self.websocket:
            websocket_thread = Thread(target=Server._run_websocket_server,
                                      kwargs={
                                          'router':
                                          services_router.websocket_router,
                                          'port': self.websocket_port
                                      })
            websocket_thread.daemon = True
            websocket_thread.start()
            time.sleep(1)

        try:
            signal.signal(signal.SIGINT, Server._signal_handler)
        except ValueError:
            pass

        while self._http_server_running() or self._websocket_server_running():
            time.sleep(3)

        return exit_codes.SUCCESS
Beispiel #4
0
    def test_get_root_services(self):
        os.environ[environment.
                   LIMIS_PROJECT_NAME_ENVIRONMENT_VARIABLE] = 'test_project'

        path = Path(__file__).parent / 'data/settings_root_services.ini'
        os.environ[environment.
                   LIMIS_PROJECT_SETTINGS_ENVIRONMENT_VARIABLE] = str(path)

        root_services = get_root_services()

        self.assertEqual(root_services.context_root, 'context_root')
        self.assertEqual(root_services.services, ['test'])

        os.environ.pop(environment.LIMIS_PROJECT_NAME_ENVIRONMENT_VARIABLE)
        os.environ.pop(environment.LIMIS_PROJECT_SETTINGS_ENVIRONMENT_VARIABLE)
Beispiel #5
0
 def test_get_root_services_with_invalid_type(self):
     with self.assertRaises(TypeError):
         get_root_services()