2023-03-21 13:21:03 +00:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
2019-02-26 16:36:23 +00:00
|
|
|
import uuid
|
|
|
|
|
|
2019-02-26 18:19:32 +00:00
|
|
|
from django.core.exceptions import ValidationError
|
2019-02-26 16:36:23 +00:00
|
|
|
from django.test import TestCase
|
|
|
|
|
|
|
|
|
|
from model_utils.fields import UUIDField
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UUIDFieldTests(TestCase):
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_default(self) -> None:
|
2019-02-26 16:36:23 +00:00
|
|
|
instance = UUIDField()
|
|
|
|
|
self.assertEqual(instance.default, uuid.uuid4)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_1(self) -> None:
|
2019-02-26 16:36:23 +00:00
|
|
|
instance = UUIDField(version=1)
|
|
|
|
|
self.assertEqual(instance.default, uuid.uuid1)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_2_error(self) -> None:
|
2019-02-26 18:19:32 +00:00
|
|
|
self.assertRaises(ValidationError, UUIDField, 'version', 2)
|
2019-02-26 16:36:23 +00:00
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_3(self) -> None:
|
2019-02-26 16:36:23 +00:00
|
|
|
instance = UUIDField(version=3)
|
|
|
|
|
self.assertEqual(instance.default, uuid.uuid3)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_4(self) -> None:
|
2019-02-26 16:36:23 +00:00
|
|
|
instance = UUIDField(version=4)
|
|
|
|
|
self.assertEqual(instance.default, uuid.uuid4)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_5(self) -> None:
|
2019-02-26 16:36:23 +00:00
|
|
|
instance = UUIDField(version=5)
|
|
|
|
|
self.assertEqual(instance.default, uuid.uuid5)
|
2019-03-20 20:51:31 +00:00
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_bellow_min(self) -> None:
|
2019-03-20 20:51:31 +00:00
|
|
|
self.assertRaises(ValidationError, UUIDField, 'version', 0)
|
|
|
|
|
|
2023-03-22 17:50:18 +00:00
|
|
|
def test_uuid_version_above_max(self) -> None:
|
2019-03-20 20:51:31 +00:00
|
|
|
self.assertRaises(ValidationError, UUIDField, 'version', 6)
|