* Update datetime handling in ApiKey and Variable models * Refactor test_login_successful function in test_login.py * Fix nullable attribute for created_at and updated_at fields in Variable model
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import pytest
|
|
from langflow.services.auth.utils import get_password_hash
|
|
from langflow.services.database.models.user import User
|
|
from langflow.services.deps import session_scope
|
|
from sqlalchemy.exc import IntegrityError
|
|
|
|
|
|
@pytest.fixture
|
|
def test_user():
|
|
return User(
|
|
username="testuser",
|
|
password=get_password_hash("testpassword"), # Assuming password needs to be hashed
|
|
is_active=True,
|
|
is_superuser=False,
|
|
)
|
|
|
|
|
|
def test_login_successful(client, test_user):
|
|
# Adding the test user to the database
|
|
try:
|
|
with session_scope() as session:
|
|
session.add(test_user)
|
|
session.commit()
|
|
except IntegrityError:
|
|
pass
|
|
|
|
response = client.post("api/v1/login", data={"username": "testuser", "password": "testpassword"})
|
|
assert response.status_code == 200
|
|
assert "access_token" in response.json()
|
|
|
|
|
|
def test_login_unsuccessful_wrong_username(client):
|
|
response = client.post("api/v1/login", data={"username": "wrongusername", "password": "testpassword"})
|
|
assert response.status_code == 401
|
|
assert response.json()["detail"] == "Incorrect username or password"
|
|
|
|
|
|
def test_login_unsuccessful_wrong_password(client, test_user, session):
|
|
# Adding the test user to the database
|
|
session.add(test_user)
|
|
session.commit()
|
|
|
|
response = client.post("api/v1/login", data={"username": "testuser", "password": "wrongpassword"})
|
|
assert response.status_code == 401
|
|
assert response.json()["detail"] == "Incorrect username or password"
|