from django.test import SimpleTestCase, TestCase from apps.users.models import User from apps.users.resources import UserResource class UserIdentityTests(TestCase): def test_email_is_optional_and_flags_follow_identity(self): user = User.objects.create_user(username="mobile_only", mobile="09191110000", password="password") self.assertIsNone(user.email) self.assertFalse(user.is_email_verified) user.email = " PERSON@EXAMPLE.COM " user.save(update_fields=["email"]) user.refresh_from_db() self.assertEqual(user.email, "person@example.com") self.assertTrue(user.is_email_verified) user.email = None user.save(update_fields=["email"]) user.refresh_from_db() self.assertFalse(user.is_email_verified) def test_display_name_prefers_mobile_when_email_absent(self): user = User.objects.create_user(username="mobile_only", mobile="09191110001", password="password") self.assertIn(user.mobile, str(user)) class UserResourceTests(SimpleTestCase): def test_email_identity_flag_remains_exportable(self): resource = UserResource() self.assertIn("is_email_verified", resource.fields)