Пример #1
0
def test_login_controller_authorized_no_token(flask_app):
    with flask_app.test_request_context("/auth/google/authorized"):
        assert current_user.is_authenticated is False
        returned = user_logged_in(bplogin, None)
        assert current_user.is_authenticated is False

    assert returned is not False
    assert re.search(r"error=token$", returned.headers["Location"]) is not None
    assert returned.status_code == 302
Пример #2
0
def test_logout_controller(flask_app, db_perm_session, test_vcr, auth_user,
                           auth_blueprint):
    assert len(db_perm_session.query(User).all()) == 1
    assert len(db_perm_session.query(OAuth).all()) == 1

    with flask_app.test_request_context("/auth/logout"):
        user_logged_in(auth_blueprint, auth_user.oauth.token)
        assert current_user.is_authenticated is True

        with flask_app.test_client(user=auth_user) as client:
            assert current_user.is_authenticated is True

            with test_vcr.use_cassette("auth_google_token_revoke.yml"):
                response = client.get("/auth/logout")

                assert current_user.is_authenticated is False

        assert response.status_code == 302
        assert len(db_perm_session.query(User).all()) == 1
        assert len(db_perm_session.query(OAuth).all()) == 0
Пример #3
0
def test_login_controller_authorized_not_ok(flask_app, memory_blueprint):
    with responses.RequestsMock() as rsps:
        rsps.add(responses.GET, re.compile(".+google.+"), status=400)

        with flask_app.test_request_context("/auth/google/authorized"):
            assert current_user.is_authenticated is False
            returned = user_logged_in(memory_blueprint,
                                      {"access_token": "fake-token"})
            assert current_user.is_authenticated is False

    assert returned is not False
    assert re.search(r"error=error$", returned.headers["Location"]) is not None
    assert returned.status_code == 302
Пример #4
0
def test_login_controller_login_user(flask_app, db_perm_session, auth_user,
                                     auth_blueprint):
    assert len(db_perm_session.query(User).all()) == 1
    assert len(db_perm_session.query(OAuth).all()) == 1

    with flask_app.test_request_context("/auth/google/authorized"):
        assert current_user.is_authenticated is False
        returned = user_logged_in(auth_blueprint, auth_user.oauth.token)
        logged_in_uid = session.get("user_id")
        assert current_user.is_authenticated is True

    assert returned is False
    assert len(db_perm_session.query(User).all()) == 1
    assert len(db_perm_session.query(OAuth).all()) == 1
    assert logged_in_uid == str(auth_user.id)
Пример #5
0
def test_login_controller_authorized(mocker, flask_app, memory_blueprint):
    mocker.patch.object(UserService,
                        "get_create_oauth",
                        return_value=MagicMock(autospec=True))
    with responses.RequestsMock() as rsps:
        rsps.add(responses.GET,
                 re.compile(".+google.+"),
                 status=200,
                 json={"id": "fake-id"})

        with flask_app.test_request_context("/auth/google/authorized"):
            returned = user_logged_in(memory_blueprint,
                                      {"access_token": "fake-token"})

    assert returned is False
Пример #6
0
def test_login_controller_authorized_error(mocker, flask_app,
                                           memory_blueprint):
    mocker.patch.object(UserService,
                        "get_create_oauth",
                        side_effect=DatabaseError("statement", "params",
                                                  "orig"))
    with responses.RequestsMock() as rsps:
        rsps.add(responses.GET, re.compile(".+google.+"), status=200)

        with flask_app.test_request_context("/auth/google/authorized"):
            assert current_user.is_authenticated is False
            returned = user_logged_in(memory_blueprint,
                                      {"access_token": "fake-token"})
            assert current_user.is_authenticated is False

    assert returned is not False
    assert re.search(r"error=error$", returned.headers["Location"]) is not None
    assert returned.status_code == 302