diff --git a/demo/demo/urls.py b/demo/demo/urls.py index eb5fb43c767c8fcc5373309f84a071c032f222d7..f6850db3a6853c5b8b5b760de4d0139ab9b7a2d5 100644 --- a/demo/demo/urls.py +++ b/demo/demo/urls.py @@ -5,7 +5,7 @@ from . import views base_path = "api/admin/" urlpatterns = [ - path(base_path + "token/", views.token), + path(base_path + "token/", views.token, name='token'), path(base_path + "import_user/", views.import_user), path(base_path + "user/", views.get_user), path(base_path + "change_user_email", views.change_user_email), diff --git a/demo/demo/views.py b/demo/demo/views.py index a2c47c963fb5ad6c8f6f164d5e19feabc78420a7..9fcea1029a6e26e170f8e27257f7a58f2750ad10 100644 --- a/demo/demo/views.py +++ b/demo/demo/views.py @@ -43,14 +43,15 @@ def keycloak_authenticate_response_old(request): print(request) return JsonResponse({"msg": "ok"}) + @require_GET @login_required def keycloak_authenticate_response(request): return JsonResponse({"msg": "ok"}) + @csrf_exempt @require_POST def token(request): - import pdb; pdb.set_trace() - response_body = request.headers.get('Authorization', {}) - return JsonResponse(response_body, safe=False) \ No newline at end of file + auth_token = request.headers.get('Authorization', {}) + return JsonResponse({'token': auth_token}) diff --git a/demo/tests/test_keycloak_fixtures.py b/demo/tests/test_keycloak_fixtures.py new file mode 100644 index 0000000000000000000000000000000000000000..037a9381c5d73849d7f472f82e9cbfe4cc6a67f0 --- /dev/null +++ b/demo/tests/test_keycloak_fixtures.py @@ -0,0 +1,10 @@ +def test_base_setup_fixture(ccee_base_setup): + assert ccee_base_setup is not None + + +def test_keycloak_fixture(keycloak): + assert keycloak is not None + + +def test_emma_auth_token_fixture(emma_auth_token): + assert emma_auth_token is not None \ No newline at end of file diff --git a/demo/tests/test_keycloak_login.py b/demo/tests/test_keycloak_login.py index 037a9381c5d73849d7f472f82e9cbfe4cc6a67f0..fe6d49a31faf9c5c485c74574328e562c19d69b4 100644 --- a/demo/tests/test_keycloak_login.py +++ b/demo/tests/test_keycloak_login.py @@ -1,10 +1,13 @@ -def test_base_setup_fixture(ccee_base_setup): - assert ccee_base_setup is not None - - -def test_keycloak_fixture(keycloak): - assert keycloak is not None - - -def test_emma_auth_token_fixture(emma_auth_token): - assert emma_auth_token is not None \ No newline at end of file +from django.urls import reverse + + +def test_token_view(client, emma_auth_token): + bearer = 'Bearer {}'.format(emma_auth_token['access_token']) + + response = client.post( + reverse('token'), + content_type='application-json', + HTTP_AUTHORIZATION=bearer, + ) + assert response.status_code == 200 + assert response.json() == {'token': bearer}