mirror of
https://github.com/jazzband/django-eav2.git
synced 2026-05-05 22:24:50 +00:00
44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
|
|
# test_primary_key_format.py
|
||
|
|
|
||
|
|
from django.test import TestCase
|
||
|
|
from django.conf import settings
|
||
|
|
from django.db import models
|
||
|
|
from functools import partial
|
||
|
|
import uuid
|
||
|
|
from eav.logic.object_pk import get_pk_format
|
||
|
|
|
||
|
|
class GetPrimaryKeyFormatTestCase(TestCase):
|
||
|
|
def test_get_uuid_primary_key(self):
|
||
|
|
settings.PRIMARY_KEY_FIELD = "django.db.models.UUIDField"
|
||
|
|
primary_field = get_pk_format()
|
||
|
|
self.assertTrue(isinstance(primary_field, models.UUIDField))
|
||
|
|
self.assertTrue(primary_field.primary_key)
|
||
|
|
self.assertFalse(primary_field.editable)
|
||
|
|
self.assertEqual(primary_field.default, uuid.uuid4)
|
||
|
|
|
||
|
|
def test_get_char_primary_key(self):
|
||
|
|
settings.PRIMARY_KEY_FIELD = "django.db.models.CharField"
|
||
|
|
primary_field = get_pk_format()
|
||
|
|
self.assertTrue(isinstance(primary_field, models.CharField))
|
||
|
|
self.assertTrue(primary_field.primary_key)
|
||
|
|
self.assertFalse(primary_field.editable)
|
||
|
|
self.assertEqual(primary_field.max_length, 40)
|
||
|
|
|
||
|
|
def test_get_default_primary_key(self):
|
||
|
|
# This test covers the default case for "BigAutoField"
|
||
|
|
settings.PRIMARY_KEY_FIELD = "AnyOtherField"
|
||
|
|
primary_field = get_pk_format()
|
||
|
|
self.assertTrue(isinstance(primary_field, models.BigAutoField))
|
||
|
|
self.assertTrue(primary_field.primary_key)
|
||
|
|
self.assertFalse(primary_field.editable)
|
||
|
|
|
||
|
|
def test_unrecognized_primary_key_field(self):
|
||
|
|
# Test when an unrecognized primary key field is specified in settings
|
||
|
|
settings.PRIMARY_KEY_FIELD = "UnrecognizedField"
|
||
|
|
with self.assertRaises(ValueError):
|
||
|
|
get_pk_format()
|
||
|
|
|
||
|
|
def tearDown(self):
|
||
|
|
# Reset the PRIMARY_KEY_FIELD setting after each test
|
||
|
|
settings.PRIMARY_KEY_FIELD = "django.db.models.BigAutoField"
|