Skip to content

Commit

Permalink
Add Test + Fixtures
Browse files Browse the repository at this point in the history
test+fixtures successful login_for_access_token
  • Loading branch information
BraunRudolf committed Oct 9, 2024
1 parent 8cdb1a3 commit 764058f
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
12 changes: 11 additions & 1 deletion backend-app/tests/unit/conftest.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from io import BytesIO
from unittest.mock import MagicMock, patch
from unittest.mock import MagicMock

import pandas as pd
import pytest
Expand Down Expand Up @@ -319,3 +319,13 @@ def valid_token(valid_token_payload):
def mock_jwt_decode(valid_token_payload):
"""Mock jwt.decode to return a valid payload."""
return MagicMock(return_value=valid_token_payload)


@pytest.fixture
def mock_authenticate_user(mock_get_user_by_email_success):
return MagicMock(return_value=mock_get_user_by_email_success)


@pytest.fixture
def mock_create_access_token_valid_token(valid_token):
return MagicMock(return_value=valid_token)
33 changes: 33 additions & 0 deletions backend-app/tests/unit/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,3 +280,36 @@ def test_health_check_wrong_url(client):
# Wrong URL
response = client.get("/wrong-url")
assert response.status_code == 404 # Not Found


def test_successful_login(
client,
mock_authenticate_user,
mock_create_access_token_valid_token,
valid_token,
db,
monkeypatch,
):

monkeypatch.setattr("app.api.auth.authenticate_user", mock_authenticate_user)
monkeypatch.setattr("app.api.auth.create_access_token", mock_create_access_token_valid_token)

# Prepare the data as if it is coming from OAuth2PasswordRequestForm
login_data = {"username": "[email protected]", "password": "test1fake_hash"}

# Send a POST request to the /token endpoint
response = client.post("/token", data=login_data)

# Assert that the status code is 200 OK
assert response.status_code == 200

# Assert that the response JSON contains the correct token
expected_response = {
"access_token": valid_token,
"token_type": "bearer",
"message": "Welcome!",
}
assert response.json() == expected_response

# # Ensure the authenticate_user was called with correct arguments
mock_authenticate_user.assert_called_once_with("[email protected]", "test1fake_hash", db=db)

0 comments on commit 764058f

Please sign in to comment.