django-eav2/tests/test_primary_key_format.py

34 lines
1.1 KiB
Python
Raw Normal View History

import uuid
import pytest
from django.db import models
from eav.logic.object_pk import get_pk_format
def test_get_uuid_primary_key(settings) -> None:
settings.EAV2_PRIMARY_KEY_FIELD = "django.db.models.UUIDField"
primary_field = get_pk_format()
assert isinstance(primary_field, models.UUIDField)
assert primary_field.primary_key
assert not primary_field.editable
assert primary_field.default == uuid.uuid4
def test_get_char_primary_key(settings) -> None:
settings.EAV2_PRIMARY_KEY_FIELD = "django.db.models.CharField"
primary_field = get_pk_format()
assert isinstance(primary_field, models.CharField)
assert primary_field.primary_key
assert not primary_field.editable
assert primary_field.max_length == 40
def test_get_default_primary_key(settings) -> None:
# This test covers the default case for "BigAutoField"
settings.EAV2_PRIMARY_KEY_FIELD = "AnyOtherField"
primary_field = get_pk_format()
assert isinstance(primary_field, models.BigAutoField)
assert primary_field.primary_key
assert not primary_field.editable