def setup(self): self.process, self.url, self.app, _, self.cm, self.fm = mscolab_start_server( PORTS) QtTest.QTest.qWait(500) self.application = QtWidgets.QApplication(sys.argv) self.window = MSSMscolabWindow( data_dir=mscolab_settings.MSCOLAB_DATA_DIR, mscolab_server_url=self.url) self.cm = ChatManager() self.room_name = "europe" data = {'email': 'a', 'password': '******'} r = requests.post(self.url + '/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(self.url, 'create_project') requests.post(url, data=data)
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_managers(app): """ takes app as parameter to extract config data, initializes ChatManager, FileManager, SocketManager and return them #ToDo return socketio and integrate socketio.cm = ChatManager() similarly for FileManager and SocketManager(already done for this) """ cm = ChatManager() fm = FileManager(app.config["MSCOLAB_DATA_DIR"]) sm = SocketsManager(cm, fm) # sockets related handlers socketio.on_event('connect', sm.handle_connect) socketio.on_event('start', sm.handle_start_event) socketio.on_event('disconnect', sm.handle_disconnect) socketio.on_event('chat-message', sm.handle_message) socketio.on_event('edit-message', sm.handle_message_edit) socketio.on_event('delete-message', sm.handle_message_delete) socketio.on_event('file-save', sm.handle_file_save) socketio.on_event('add-user-to-room', sm.join_creator_to_room) socketio.sm = sm return socketio, cm, fm
class Test_Chat_Manager(object): 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 teardown(self): with self.app.app_context(): p_id = get_recent_pid(self.fm, self.user) self.fm.delete_file(p_id, self.user) db.session.commit() for socket in self.sockets: socket.disconnect() def test_add_message(self): with self.app.app_context(): message = self.cm.add_message(self.user, 'some message', self.room_name, message_type=MessageType.TEXT, reply_id=None) assert message.text == 'some message' def test_edit_messages(self): with self.app.app_context(): message = self.cm.add_message(self.user, 'some test message', self.room_name, message_type=MessageType.TEXT, reply_id=None) new_message_text = "Wonderland" self.cm.edit_message(message.id, new_message_text) message = Message.query.filter_by(id=message.id).first() assert message.text == new_message_text def test_delete_messages(self): with self.app.app_context(): message = self.cm.add_message(self.user, 'some test example message', self.room_name, message_type=MessageType.TEXT, reply_id=None) assert 'some test example message' in message.text self.cm.delete_message(message.id) message = Message.query.filter(Message.id == message.id).first() assert message is None def _login(self): url = url_join(MSCOLAB_URL_TEST, 'token') r = requests.post(url, data={ 'email': '*****@*****.**', 'password': '******' }) response = json.loads(r.text) return response
class Test_Chat_Manager(object): def setup(self): self.process, self.url, self.app, _, self.cm, self.fm = mscolab_start_server( PORTS) QtTest.QTest.qWait(500) self.application = QtWidgets.QApplication(sys.argv) self.window = MSSMscolabWindow( data_dir=mscolab_settings.MSCOLAB_DATA_DIR, mscolab_server_url=self.url) self.cm = ChatManager() self.room_name = "europe" data = {'email': 'a', 'password': '******'} r = requests.post(self.url + '/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(self.url, 'create_project') requests.post(url, data=data) def teardown(self): if self.window.version_window: self.window.version_window.close() if self.window.conn: self.window.conn.disconnect() self.application.quit() QtWidgets.QApplication.processEvents() self.process.terminate() def test_add_message(self): with self.app.app_context(): message = self.cm.add_message(self.user, 'some message', self.room_name, message_type=MessageType.TEXT, reply_id=None) assert message.text == 'some message' def test_edit_messages(self): with self.app.app_context(): message = self.cm.add_message(self.user, 'some test message', self.room_name, message_type=MessageType.TEXT, reply_id=None) new_message_text = "Wonderland" self.cm.edit_message(message.id, new_message_text) message = Message.query.filter_by(id=message.id).first() assert message.text == new_message_text def test_delete_messages(self): with self.app.app_context(): message = self.cm.add_message(self.user, 'some test example message', self.room_name, message_type=MessageType.TEXT, reply_id=None) assert 'some test example message' in message.text self.cm.delete_message(message.id) message = Message.query.filter(Message.id == message.id).first() assert message is None