File size: 1,727 Bytes
6369972 8628c58 6369972 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import unittest
import uuid
from src.uuid_util.is_valid_uuid import is_valid_uuid
class TestIsValidUUID(unittest.TestCase):
def test_valid_uuid_hardcoded(self):
"""Test that a proper UUID (version 4) returns True."""
valid_uuid = "1382d4a1-5eb0-42f3-b93a-74c066ae1c97"
self.assertTrue(is_valid_uuid(valid_uuid))
def test_valid_uuid_generated(self):
"""Test that a proper UUID (version 4) returns True."""
valid_uuid = str(uuid.uuid4())
self.assertTrue(is_valid_uuid(valid_uuid))
def test_invalid_uuid_format(self):
"""Test that strings that don't follow the UUID format return False."""
# Contains an invalid character ("x" is not a valid hexadecimal digit)
bad_uuid = "x6e6e7e83-8db9-4ac9-88d3-0aeda252a19e"
self.assertFalse(is_valid_uuid(bad_uuid))
def test_non_uuid_string(self):
"""Test that a random non-UUID string returns False."""
non_uuid = "this-is-not-a-uuid"
self.assertFalse(is_valid_uuid(non_uuid))
def test_empty_string(self):
"""Test that an empty string is not a valid UUID."""
self.assertFalse(is_valid_uuid(""))
def test_none(self):
"""Test that None is not a valid UUID."""
self.assertFalse(is_valid_uuid(None))
def test_non_canonical_format(self):
"""
Test that a UUID in non-canonical format (e.g., uppercase) returns False.
The function checks that the string form of the UUID is identical to the input.
"""
valid_uuid = str(uuid.uuid4())
non_canonical = valid_uuid.upper() # Convert to uppercase
self.assertFalse(is_valid_uuid(non_canonical))
|