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")