django-eav2/tests/test_primary_key_format.py
Mike b5b576aca5 refactor: apply ruff linter rules and standardize code style
Replace flake8 with ruff and apply consistent linting rules across the entire codebase. Update type annotations, quotation marks, and other style-related changes to comply with the new standards.
2024-09-01 14:57:47 -07:00

32 lines
1.1 KiB
Python

import uuid
from django.db import models
from eav.logic.object_pk import _DEFAULT_CHARFIELD_LEN, 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 == _DEFAULT_CHARFIELD_LEN
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