46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
from django.contrib.auth import authenticate
|
|
from django.test import Client, TestCase
|
|
|
|
from apps.accounts.models import User
|
|
|
|
|
|
class UserLoginFieldTests(TestCase):
|
|
def test_authenticate_uses_user_login_not_user_name(self):
|
|
User.objects.create_user(
|
|
user_login="gm.login",
|
|
password="gm123",
|
|
user_name="gm",
|
|
status=User.STATUS_GM,
|
|
)
|
|
self.assertIsNotNone(
|
|
authenticate(username="gm.login", password="gm123")
|
|
)
|
|
self.assertIsNone(authenticate(username="gm", password="gm123"))
|
|
|
|
def test_create_user_defaults_user_name_to_login(self):
|
|
user = User.objects.create_user(user_login="solo", password="x")
|
|
self.assertEqual(user.user_login, "solo")
|
|
self.assertEqual(user.user_name, "solo")
|
|
|
|
|
|
class LoginApiUserLoginTests(TestCase):
|
|
def test_login_accepts_user_login(self):
|
|
User.objects.create_user(
|
|
user_login="gm.login",
|
|
password="gm123",
|
|
user_name="gm",
|
|
status=User.STATUS_GM,
|
|
)
|
|
client = Client()
|
|
client.get("/api/v1/auth/csrf/")
|
|
token = client.cookies["csrftoken"].value
|
|
response = client.post(
|
|
"/api/v1/auth/login/",
|
|
{"user_login": "gm.login", "password": "gm123"},
|
|
content_type="application/json",
|
|
HTTP_X_CSRFTOKEN=token,
|
|
)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json()["user_login"], "gm.login")
|
|
self.assertEqual(response.json()["user_name"], "gm")
|