def setup(self): self.app = APP self.app.config['SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app, _, cm, _ = initialize_managers(self.app) self.cm = cm db.init_app(self.app)
def setup(self): # start mscolab server self.app = APP self.app.config[ 'SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app.config['UPLOAD_FOLDER'] = mscolab_settings.UPLOAD_FOLDER self.app, _, cm, fm = initialize_managers(self.app) self.fm = fm self.cm = cm db.init_app(self.app) logging.debug("starting") self.application = QtWidgets.QApplication(sys.argv) self.window = MSSMscolabWindow( data_dir=mscolab_settings.MSCOLAB_DATA_DIR, mscolab_server_url=MSCOLAB_URL_TEST) self._login() self._activate_project_at_index(0) # activate project window here by clicking button QtTest.QTest.mouseClick(self.window.chatWindowBtn, QtCore.Qt.LeftButton) QtWidgets.QApplication.processEvents() self.chat_window = self.window.chat_window QtTest.QTest.qWaitForWindowExposed(self.window) QtWidgets.QApplication.processEvents()
def test_initialize_managers(self): app, sockio, cm, fm = initialize_managers(self.app) assert app.config[ 'MSCOLAB_DATA_DIR'] == mscolab_settings.MSCOLAB_DATA_DIR assert 'Create a Flask-SocketIO server.' in sockio.__doc__ assert 'Class with handler functions for chat related functionalities' in cm.__doc__ assert 'Class with handler functions for file related functionalities' in fm.__doc__
def mscolab_start_server(all_ports, mscolab_settings=mscolab_settings): handle_db_seed() port = mscolab_check_free_port(all_ports, all_ports.pop()) url = f"http://localhost:{port}" _app = APP _app.config['SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI _app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR _app.config['UPLOAD_FOLDER'] = mscolab_settings.UPLOAD_FOLDER _app.config['URL'] = url _app, sockio, cm, fm = initialize_managers(_app) # ToDo refactoring for spawn needed, fork is not implemented on windows, spawn is default on MAC and Windows if multiprocessing.get_start_method(allow_none=True) != 'fork': multiprocessing.set_start_method("fork") process = multiprocessing.Process(target=start_server, args=( _app, sockio, cm, fm, ), kwargs={'port': port}) process.start() return process, url, _app, sockio, cm, fm
def setup(self): """ User being used during test: id = 5, username = test1 """ self.port = 8084 handle_db_seed() self.app = APP self.app.config['SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app, sockio, cm, fm = initialize_managers(self.app) self.fm = fm self.cm = cm db.init_app(self.app) self.MSCOLAB_URL_TEST = f"http://localhost:{self.port}" self.application = QtWidgets.QApplication(sys.argv) self.window = MSSMscolabWindow(data_dir=mscolab_settings.MSCOLAB_DATA_DIR, mscolab_server_url=self.MSCOLAB_URL_TEST) self._login() self._activate_project_at_index(0) QtTest.QTest.mouseClick(self.window.adminWindowBtn, QtCore.Qt.LeftButton) QtWidgets.QApplication.processEvents() self.admin_window = self.window.admin_window QtTest.QTest.qWaitForWindowExposed(self.window) QtWidgets.QApplication.processEvents()
def _spawn_live_server(self): self._process = None port_value = self._port_value app, sockio, cm, fm = initialize_managers(self.app) self._process = multiprocessing.Process( target=start_server, args=( app, sockio, cm, fm, ), kwargs={'port': port_value.value}) self._process.start() # We must wait for the server to start listening, but give up # after a specified maximum timeout timeout = self.app.config.get('LIVESERVER_TIMEOUT', 5) start_time = time.time() while True: elapsed_time = (time.time() - start_time) if elapsed_time > timeout: raise RuntimeError( "Failed to start the server after %d seconds. " % timeout) if self._can_ping_server(): break
def handle_start(args): from mslib.mscolab.server import APP, initialize_managers, start_server setup_logging(args) logging.info("MSS Version: %s", __version__) logging.info("Python Version: %s", sys.version) logging.info("Platform: %s (%s)", platform.platform(), platform.architecture()) logging.info("Launching user interface...") app, sockio, cm, fm = initialize_managers(APP) start_server(app, sockio, cm, fm)
def setup(self): self.app = APP self.app.config[ 'SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app.config['UPLOAD_FOLDER'] = mscolab_settings.UPLOAD_FOLDER self.app, _, cm, fm = initialize_managers(self.app) self.fm = fm self.cm = cm db.init_app(self.app) with self.app.app_context(): self.user = User.query.filter_by(id=8).first()
def start_mscolab_server(request): from mslib.mscolab.conf import mscolab_settings from mslib.mscolab.server import APP, initialize_managers, start_server _app = APP _app.config['SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI _app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR _app.config['UPLOAD_FOLDER'] = mscolab_settings.UPLOAD_FOLDER _app, sockio, cm, fm = initialize_managers(_app) global process process = multiprocessing.Process( target=start_server, args=(_app, sockio, cm, fm,), kwargs={'port': 8084}) process.start() time.sleep(2)
def setup(self): handle_db_seed() self.port = 8084 self.app = APP self.app.config[ 'SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app.config['UPLOAD_FOLDER'] = mscolab_settings.UPLOAD_FOLDER self.app, sockio, cm, fm = initialize_managers(self.app) self.fm = fm self.cm = cm db.init_app(self.app) self.MSCOLAB_URL_TEST = f"http://localhost:{self.port}" logging.debug("starting") self.application = QtWidgets.QApplication(sys.argv) self.window = MSSMscolabWindow( data_dir=mscolab_settings.MSCOLAB_DATA_DIR, mscolab_server_url=self.MSCOLAB_URL_TEST)
def setup(self): handle_db_seed() self.application = QtWidgets.QApplication(sys.argv) self.window = MSSMscolabWindow(data_dir=mscolab_settings.MSCOLAB_DATA_DIR, mscolab_server_url=MSCOLAB_URL_TEST) self.window.show() QtWidgets.QApplication.processEvents() QtTest.QTest.qWaitForWindowExposed(self.window) QtWidgets.QApplication.processEvents() self.app = APP self.app.config['SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app.config['UPLOAD_FOLDER'] = mscolab_settings.UPLOAD_FOLDER self.app, _, cm, fm = initialize_managers(self.app) self.fm = fm self.cm = cm db.init_app(self.app)
def mscolab_start_server(all_ports, mscolab_settings=mscolab_settings, timeout=5): handle_db_init() port = mscolab_check_free_port(all_ports, all_ports.pop()) url = f"http://localhost:{port}" _app = APP _app.config['SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI _app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR _app.config['UPLOAD_FOLDER'] = mscolab_settings.UPLOAD_FOLDER _app.config['URL'] = url _app, sockio, cm, fm = initialize_managers(_app) # ToDo refactoring for spawn needed, fork is not implemented on windows, spawn is default on MAC and Windows if multiprocessing.get_start_method(allow_none=True) != 'fork': multiprocessing.set_start_method("fork") process = multiprocessing.Process(target=start_server, args=( _app, sockio, cm, fm, ), kwargs={'port': port}) process.start() start_time = time.time() while True: elapsed_time = (time.time() - start_time) if elapsed_time > timeout: raise RuntimeError( "Failed to start the server after %d seconds. " % timeout) if mscolab_ping_server(port): break return process, url, _app, sockio, cm, fm
def setUp(self): handle_db_reset() self.sockets = [] # self.app = APP self.app.config[ 'SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app, _, self.cm, self.fm = initialize_managers(self.app) db.init_app(self.app) self.userdata = 'UV10@uv10', 'UV10', 'uv10' self.anotheruserdata = 'UV20@uv20', 'UV20', 'uv20' self.operation_name = "europe" assert add_user(self.userdata[0], self.userdata[1], self.userdata[2]) assert add_operation(self.operation_name, "test europe") assert add_user_to_operation(path=self.operation_name, emailid=self.userdata[0]) self.user = get_user(self.userdata[0]) assert add_user(self.anotheruserdata[0], self.anotheruserdata[1], self.anotheruserdata[2]) self.anotheruser = get_user(self.anotheruserdata[0]) self.token = self.user.generate_auth_token() self.operation = get_operation(self.operation_name) self.url = self.get_server_url() self.sm = SocketsManager(self.cm, self.fm)
def setup(self): self.sockets = [] self.app = APP self.app.config[ 'SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR self.app, _, _, fm = initialize_managers(self.app) self.fm = fm self.cm = ChatManager() self.room_name = "europe" db.init_app(self.app) data = {'email': 'a', 'password': '******'} r = requests.post(MSCOLAB_URL_TEST + '/token', data=data) self.token = json.loads(r.text)['token'] with self.app.app_context(): self.user = User.query.filter_by(id=8).first() data = { "token": self.token, "path": self.room_name, "description": "test description" } url = url_join(MSCOLAB_URL_TEST, 'create_project') r = requests.post(url, data=data)
def setup(self): mscolab_settings.enable_basic_http_authentication = False self.app = APP self.app.config['SQLALCHEMY_DATABASE_URI'] = mscolab_settings.SQLALCHEMY_DB_URI self.app.config['MSCOLAB_DATA_DIR'] = mscolab_settings.MSCOLAB_DATA_DIR _app, self.sockio, self.cm, self.fm = server.initialize_managers(self.app)