angrybeanie_wagtail/env/lib/python3.12/site-packages/wagtail/test/customuser/tests.py
2025-07-25 21:32:16 +10:00

47 lines
1.6 KiB
Python

import json
import unittest
from django.conf import settings
from django.db import connections
from django.test import TestCase
from wagtail.test.utils import WagtailTestUtils
from .fields import ConvertedValue, ConvertedValueField
@unittest.skipUnless(
settings.AUTH_USER_MODEL == "customuser.CustomUser", "Only applicable to CustomUser"
)
class TestConvertedValueField(WagtailTestUtils, TestCase):
def setUp(self):
self.user = self.login()
User = self.user.__class__
self.pk_field = User._meta.get_field(User._meta.pk.name)
self.pk_db_value = self.pk_field.get_db_prep_value(
self.user.pk, connections["default"]
)
def test_db_value_is_different(self):
self.assertEqual(self.user.pk, self.pk_db_value)
self.assertNotEqual(str(self.user.pk), str(self.pk_db_value))
def test_custom_user_primary_key_is_hashable(self):
hash(self.user.pk)
def test_custom_user_primary_key_is_jsonable(self):
json_str = json.dumps({"pk": self.user.pk}, separators=(",", ":"))
self.assertEqual(json_str, '{"pk":"%s"}' % self.user.pk)
# verify the json string uses the display value and not the db value
self.assertNotEqual(json_str, '{"pk":"%s"}' % self.pk_db_value)
def test_custom_user_primary_key(self):
self.assertIsInstance(self.user.pk, ConvertedValue)
def test_custom_user_primary_key_is_converted_value_field(self):
self.assertIsInstance(self.pk_field, ConvertedValueField)
def test_get_prep_value_returns_integer_for_db_query(self):
self.assertIsInstance(self.pk_field.get_prep_value(1234), int)