Exemple #1
0
    def test_app_on_get_whiteboard(self, mocked_flask):
        session = UnifiedAlchemyMagicMock()
        for test in self.test_on_get_whiteboard_params:
            mocked_flask.request.sid = test[KEY_INPUT][KEY_SID]
            with mock.patch("flask_socketio.SocketIO.emit", self.mock_emit):
                with mock.patch("models.DB.session", session):
                    session.add(models.Whiteboards(*test[KEY_INPUT][BOARD_DATA]))
                    session.commit()
                    app.on_get_whiteboard()

            self.assertDictEqual(self.hold, test[KEY_EXPECTED])
Exemple #2
0
 def test_app_get_board(self, mocked_flask):
     session = UnifiedAlchemyMagicMock()
     for test in self.test_get_board_params:
         mocked_flask.request.sid = test[KEY_INPUT][KEY_SID]
         with mock.patch("flask_socketio.SocketIO.emit", self.mock_emit):
             with mock.patch("models.DB.session", session):
                 session.add(
                     models.WhiteboardConnections(
                         *test[KEY_INPUT][KEY_CONNECTION]))
                 session.commit()
                 self.assertEqual(app.get_board(test[KEY_INPUT][KEY_SID]),
                                  test[KEY_EXPECTED])
Exemple #3
0
 def test_app_on_forced_save(self, mocked_flask):
     session = UnifiedAlchemyMagicMock()
     for test in self.test_on_forced_save_params:
         mocked_flask.request.sid = test[KEY_INPUT][KEY_SID]
         with mock.patch("flask_socketio.SocketIO.emit", self.mock_emit):
             with mock.patch("models.DB.session", session):
                 temp_row=models.Whiteboards(*test[KEY_INPUT][KEY_BOARD][:2])
                 temp_row.save_num = test[KEY_INPUT][KEY_BOARD][2]
                 session.add(temp_row)
                 session.add(models.WhiteboardConnections(*test[KEY_INPUT][KEY_CONNECTION]))
                 session.commit()
                 app.on_forced_save({"blob":bytes([1,5,2,5,3,2,1])})
             self.assertDictEqual(self.hold, test[KEY_EXPECTED])
Exemple #4
0
    def test_google_login_success(self, mock_flask):
        session = UnifiedAlchemyMagicMock()
        for test in self.success_test_params:
            mock_flask.request.sid = test[KEY_INPUT][KEY_SID]

            with mock.patch("models.DB.session", session):
                session.add(
                    models.CurrentConnections(mock_flask.request.sid, 1))
                session.commit()

                print("Mocked Login")

                app.accept_google_login(test[KEY_INPUT][KEY_DATA])
Exemple #5
0
 def test_on_disconnect_whiteboard_board(self, mocked_print, mocked_flask):
     session = UnifiedAlchemyMagicMock()
     for test in self.test_on_disconnect_whiteboard_params:
         mocked_flask.request.sid = test[KEY_INPUT][KEY_SID]
         with mock.patch("flask_socketio.leave_room",
                         self.mock_leave_group):
             with mock.patch("models.DB.session", session):
                 for connect in test[KEY_INPUT][KEY_CONNECTION]:
                     temp_row = models.WhiteboardConnections(*connect)
                     temp_row.id = 1
                     session.add(temp_row)
                     session.commit()
                 app.on_disconnect_whiteboard()
                 mocked_print.assert_called_with(test[KEY_EXPECTED])
Exemple #6
0
    def test_emit_all_messages_success(self, mock_flask):
        session = UnifiedAlchemyMagicMock()
        for test in self.success_test_params:
            mock_flask.request.sid = test[KEY_INPUT][KEY_SID]

            with mock.patch("models.DB.session", session):
                session.add(models.EnteredRooms(1, 1))
                session.add(models.EnteredRooms(2, 1))
                session.commit()

                with mock.patch("flask_socketio.SocketIO.emit",
                                self.mock_emit):
                    with mock.patch("app.get_room", self.mock_get_room):
                        app.emit_all_messages(test[KEY_INPUT][KEY_SID])
Exemple #7
0
    def test_on_join_whiteboard_other(self, mocked_flask):
        session = UnifiedAlchemyMagicMock()
        for test in self.test_on_join_whiteboard_other:
            mocked_flask.request.sid = test[KEY_INPUT][KEY_SID]
            with mock.patch("flask_socketio.SocketIO.emit", self.mock_emit):
                with mock.patch("flask_socketio.join_room", self.mock_join_room):  
                    with mock.patch("models.DB.session", session):
                        temp_row=models.WhiteboardConnections(*test[KEY_INPUT][BOARD_DATA])
                        temp_row.id = 1
                        session.add(temp_row)
                        
                        session.commit()
                        app.on_join_whiteboard(test[KEY_INPUT][KEY_DATA])

            self.assertDictEqual(self.hold, test[KEY_EXPECTED])
Exemple #8
0
    def test_on_join_whiteboard(self, mocked_flask):
        session = UnifiedAlchemyMagicMock()
        for test in self.test_on_join_whiteboard_params:
            mocked_flask.request.sid = test[KEY_INPUT][KEY_SID]
            with mock.patch("flask_socketio.SocketIO.emit", self.mock_emit):
                with mock.patch("flask_socketio.join_room", self.mock_join_room):  
                    with mock.patch("models.DB.session", session):
                        temp_row=models.Whiteboards(test[KEY_INPUT][BOARD_DATA]["room"],test[KEY_INPUT][BOARD_DATA]["name"])
                        temp_row.id=test[KEY_INPUT][BOARD_DATA]["id"]
                        temp_row.save_num=test[KEY_INPUT][BOARD_DATA]["save_num"]
                        session.add(temp_row)
                        
                        session.commit()
                        app.on_join_whiteboard(test[KEY_INPUT][KEY_DATA])

            self.assertDictEqual(self.hold, test[KEY_EXPECTED])
Exemple #9
0
    def test_app_on_disconnect(self, mocked_flask):
        for test in self.test_on_disconnect_params:
            session = UnifiedAlchemyMagicMock()
            mocked_flask.request.sid = test[KEY_INPUT][KEY_SID]
            with mock.patch('models.DB.session', session):
                session.add(
                    models.CurrentConnections(test[KEY_INPUT][KEY_SID], 1))
                session.add(
                    models.AuthUser(models.AuthUserType.GOOGLE, 'nrw41',
                                    'meail', 'pciina'))
                session.commit()
                #with mock.patch('app.print', self.mock_print):
                #    with mock.patch('app.emit_all_users', self.mock_emit_all_users):
                with mock.patch('app.get_room', self.mock_get_room):
                    app.on_disconnect()

            self.assertEqual(len(self.emit_list) + 1, len(test[KEY_EXPECTED]))
            for i in range(len(self.emit_list)):
                self.assertEqual(self.emit_list[i]['opp'],
                                 test[KEY_EXPECTED][i]['opp'])
Exemple #10
0
    def test_new_room_creation_success(self, mock_flash):
        session = UnifiedAlchemyMagicMock()
        for test in self.success_test_params:
            mock_flash.request.sid = test[KEY_INPUT][KEY_SID]

            with mock.patch("models.DB.session", session):
                print("Rooms:", session.query(models.JoinedRooms).count())
                session.add(
                    models.CurrentConnections(test[KEY_INPUT][KEY_SID], 1))

                session.commit()
                with mock.patch("flask_socketio.SocketIO.emit",
                                self.mock_emit):
                    app.on_new_room_creation(test[KEY_INPUT][KEY_DATA])

                response = {
                    KEY_JOINED: session.query(models.JoinedRooms).count(),
                    KEY_ROOMS: session.query(models.Rooms).count()
                }
                expected = test[KEY_EXPECTED]
                self.assertDictEqual(response, expected)
Exemple #11
0
def test_create_new_user(app):
    """
    GIVEN a User model
    WHEN a new User is created
    THEN check the id, username, password, serialization and string representation
    """

    username = get_unique_username()
    password = '******'

    from app.model.models import User

    session = UnifiedAlchemyMagicMock()
    user = User(username=username, password=password)
    session.add(user)
    session.commit()

    query = session.query(User).first()
    assert query.username == username
    assert query.password == password
    assert query.serialize() == {'id': str(user.id), 'username': username}
    assert str(query) == '<User %r>' % (username)
Exemple #12
0
def test_create_new_token(app):
    """
    GIVEN a Token model
    WHEN a new token is created
    THEN check the id, jti, token_type, user_identity, revoked,
    expires serialization and string representation
    """

    from app.model.models import Token

    jti = "27d1b1a3-45b4-4a5f-83ed-b823f5ea1dbe"
    token_type = "access"
    user_identity = "test"
    revoked = True
    expires = datetime.now()

    session = UnifiedAlchemyMagicMock()
    token = Token(jti, token_type, user_identity, revoked, expires)
    session.add(token)
    session.commit()

    serialized_data = {
        'id': str(token.id),
        'jti': jti,
        'token_type': token_type,
        'user_identity': user_identity,
        'revoked': revoked,
        'expires': expires
    }

    query = session.query(Token).first()
    assert query.jti == jti
    assert query.token_type == token_type
    assert query.user_identity == user_identity
    assert query.revoked == revoked
    assert query.expires == expires
    assert query.serialize() == serialized_data
    assert str(query) == '<Token %r>' % (jti)