示例#1
0
 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)
示例#2
0
    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()
示例#3
0
 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__
示例#4
0
文件: utils.py 项目: Marilyth/MSS
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
示例#5
0
    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()
示例#6
0
文件: utils.py 项目: aravindm711/MSS
    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
示例#7
0
文件: mscolab.py 项目: Open-MSS/MSS
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)
示例#8
0
文件: test_utils.py 项目: plant99/MSS
 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()
示例#9
0
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)
示例#10
0
 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)
示例#12
0
文件: utils.py 项目: aravindm711/MSS
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
示例#13
0
 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)
示例#14
0
    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)
示例#15
0
 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)