Ejemplo n.º 1
0
    def test_with_unauthorized_token(self, mocked_is_authorized, app):

        token = jwt.encode(getpayload(), app.config["SECRET_KEY"]).decode()
        headers = {"Authorization": f"JWT {token}"}

        mocked_is_authorized.return_value = False

        with app.test_request_context("/", headers=headers):
            with pytest.raises(AuthorizationError):
                _validate_request()
Ejemplo n.º 2
0
    def test_current_org(self, app):
        @app.route("/")
        def index():
            pass

        payload = getpayload(sub="coyote", aud="acme")

        token = jwt.encode(payload, app.config["SECRET_KEY"]).decode()
        headers = {"Authorization": f"JWT {token}"}

        with app.test_request_context("/", headers=headers):
            _validate_request()
            assert current_org.orgname == "acme"

        assert current_org._get_current_object() is None
Ejemplo n.º 3
0
    def test_with_unknown_orgname_in_aud_claim(self, app):
        path = f"/{randint(100, 10000)}"

        @app.route(path)
        def index():
            pass

        payload = getpayload(aud="unknown")

        token = jwt.encode(payload, app.config["SECRET_KEY"]).decode()
        headers = {"Authorization": f"JWT {token}"}

        with app.test_request_context(path, headers=headers):
            with pytest.raises(AuthorizationError):
                _validate_request()
Ejemplo n.º 4
0
    def test_request_with_access_token(
        self,
        mocked_get_request_jwt,
        mocked_jwt_decode_handler,
        mocked_is_authorized,
        mocked_verify_username,
        request_ctx,
    ):

        mocked_get_request_jwt.return_value = "a.nice.token"
        mocked_jwt_decode_handler.return_value = {"sub": "coyote"}

        with request_ctx("/"):
            _validate_request("stock", "read")

        mocked_get_request_jwt.assert_called_once()
        mocked_jwt_decode_handler.assert_called_once_with("a.nice.token")
        mocked_is_authorized.assert_called_once_with({"sub": "coyote"}, "stock", "read")
        mocked_verify_username.assert_called_once_with("coyote")
Ejemplo n.º 5
0
 def test_request_without_access_token(self, request_ctx):
     with request_ctx("/"):
         with pytest.raises(TokenNotFoundError):
             _validate_request()