File: test_get_methods_in_optional_endpoint.py

package info (click to toggle)
python-flask-jwt-extended 4.7.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 592 kB
  • sloc: python: 4,279; makefile: 193; sh: 6
file content (41 lines) | stat: -rw-r--r-- 1,247 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import pytest
from flask import Flask
from flask import jsonify

from flask_jwt_extended import current_user
from flask_jwt_extended import get_current_user
from flask_jwt_extended import get_jwt
from flask_jwt_extended import get_jwt_header
from flask_jwt_extended import get_jwt_identity
from flask_jwt_extended import jwt_required
from flask_jwt_extended import JWTManager


@pytest.fixture(scope="function")
def app():
    app = Flask(__name__)
    app.config["JWT_SECRET_KEY"] = "foobarbaz"
    jwt = JWTManager(app)

    @app.route("/optional", methods=["GET"])
    @jwt_required(optional=True)
    def access_protected():
        assert get_jwt() == {}
        assert get_jwt_header() == {}
        assert get_jwt_identity() == None  # noqa: E711
        assert get_current_user() == None  # noqa: E711
        assert current_user == None  # noqa: E711
        return jsonify(foo="bar")

    @jwt.user_lookup_loader
    def user_lookup_callback(_jwt_header, _jwt_data):
        assert True == False  # noqa: E712

    return app


def test_get_jwt_in_optional_route(app):
    test_client = app.test_client()
    response = test_client.get("/optional")
    assert response.status_code == 200
    assert response.get_json() == {"foo": "bar"}