feat: deprecate email, pre-verify users + documentation

This commit is contained in:
2026-03-14 14:40:52 +03:00
parent ad711d1daf
commit 9787fb699a
13 changed files with 223 additions and 21 deletions
@@ -76,3 +76,25 @@ def test_phone_auth_refresh_endpoint_still_works(client):
)
assert refresh_response.status_code == 200
assert "access" in refresh_response.json()
@pytest.mark.django_db
@override_settings(OTP_PROVIDER="console")
def test_phone_auth_verify_returns_404_when_user_removed(client):
with patch("apps.accounts.services.otp.generate_code", return_value="123456"):
request_response = client.post(
reverse("phone_auth_request"),
{"phone_number": "0512345678", "channel": "sms"},
content_type="application/json",
)
request_id = request_response.json()["request_id"]
User.objects.filter(phone_number="+966512345678").delete()
verify_response = client.post(
reverse("phone_auth_verify"),
{"request_id": request_id, "code": "123456"},
content_type="application/json",
)
assert verify_response.status_code == 404
@@ -0,0 +1,35 @@
import pytest
from apps.accounts.models import User
@pytest.mark.django_db
def test_display_name_prefers_full_name():
user = User.objects.create_user(
phone_number="+966500000001",
first_name="Sara",
last_name="Ali",
email="sara@example.com",
)
assert user.display_name == "Sara Ali"
assert str(user) == "Sara Ali"
@pytest.mark.django_db
def test_display_name_falls_back_to_email():
user = User.objects.create_user(
phone_number="+966500000002",
email="fallback@example.com",
)
assert user.display_name == "fallback@example.com"
@pytest.mark.django_db
def test_display_name_falls_back_to_phone_when_no_email():
user = User.objects.create_user(
phone_number="+966500000003",
)
assert user.display_name == "+966500000003"