test_auth.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import pytest
  2. from unittest.mock import MagicMock
  3. def test_register_duplicate_email(client, db_mock):
  4. # Setup mock return value
  5. db_mock.execute_query.return_value = [{"id": 1}]
  6. response = client.post(
  7. "/auth/register",
  8. json={
  9. "email": "test@example.com",
  10. "password": "password123",
  11. "first_name": "Test",
  12. "last_name": "User"
  13. }
  14. )
  15. assert response.status_code == 400
  16. assert "email_already_registered" in response.json()["detail"] or "already registered" in response.json()["detail"].lower()
  17. import auth_utils
  18. def test_login_success(client, db_mock):
  19. # Mock user entry
  20. db_mock.execute_query.return_value = [{
  21. "id": 1,
  22. "email": "test@example.com",
  23. "password_hash": auth_utils.get_password_hash("password123"),
  24. "role": "user"
  25. }]
  26. response = client.post(
  27. "/auth/login",
  28. json={
  29. "email": "test@example.com",
  30. "password": "password123"
  31. }
  32. )
  33. assert response.status_code == 200
  34. assert "access_token" in response.json()
  35. assert response.json()["token_type"] == "bearer"
  36. def test_get_me_unauthorized(client):
  37. response = client.get("/auth/me")
  38. assert response.status_code == 401