75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
#!/usr/bin/env python
|
|
|
|
"""Tests for `risutools` package."""
|
|
|
|
import pytest
|
|
import uuid
|
|
from src.risutools.nodes import UUIDGenerator
|
|
|
|
@pytest.fixture
|
|
def uuid_generator_node():
|
|
"""Fixture to create a UUIDGenerator node instance."""
|
|
return UUIDGenerator()
|
|
|
|
def test_uuid_generator_initialization(uuid_generator_node):
|
|
"""Test that the node can be instantiated."""
|
|
assert isinstance(uuid_generator_node, UUIDGenerator)
|
|
|
|
def test_return_types():
|
|
"""Test the node's metadata."""
|
|
assert UUIDGenerator.RETURN_TYPES == ("STRING",)
|
|
assert UUIDGenerator.RETURN_NAMES == ("uuid",)
|
|
assert UUIDGenerator.FUNCTION == "generate_uuid"
|
|
assert UUIDGenerator.CATEGORY == "RisuTools/String"
|
|
|
|
def test_uuid_generation_v5():
|
|
"""Test UUID v5 generation."""
|
|
node = UUIDGenerator()
|
|
test_string = "test string"
|
|
result, = node.generate_uuid(test_string, "v5")
|
|
|
|
# Verify it's a valid UUID string
|
|
assert uuid.UUID(result)
|
|
|
|
# Verify deterministic behavior - same input should produce same UUID
|
|
result2, = node.generate_uuid(test_string, "v5")
|
|
assert result == result2
|
|
|
|
# Different input should produce different UUID
|
|
result3, = node.generate_uuid("different string", "v5")
|
|
assert result != result3
|
|
|
|
def test_uuid_generation_v4():
|
|
"""Test UUID v4 generation (random)."""
|
|
node = UUIDGenerator()
|
|
result, = node.generate_uuid("any string", "v4")
|
|
|
|
# Verify it's a valid UUID string
|
|
assert uuid.UUID(result)
|
|
|
|
# v4 is random, so multiple calls should produce different results
|
|
# Note: There's a tiny probability this could fail by random chance
|
|
result2, = node.generate_uuid("any string", "v4")
|
|
assert result != result2
|
|
|
|
def test_uuid_generation_v3():
|
|
"""Test UUID v3 generation."""
|
|
node = UUIDGenerator()
|
|
test_string = "test string"
|
|
result, = node.generate_uuid(test_string, "v3")
|
|
|
|
# Verify it's a valid UUID string
|
|
assert uuid.UUID(result)
|
|
|
|
# Verify deterministic behavior - same input should produce same UUID
|
|
result2, = node.generate_uuid(test_string, "v3")
|
|
assert result == result2
|
|
|
|
def test_uuid_generation_v1():
|
|
"""Test UUID v1 generation (time-based)."""
|
|
node = UUIDGenerator()
|
|
result, = node.generate_uuid("any string", "v1")
|
|
|
|
# Verify it's a valid UUID string
|
|
assert uuid.UUID(result)
|