Restore testdata-cli with proper CI/CD and tests
This commit is contained in:
95
tests/test_providers.py
Normal file
95
tests/test_providers.py
Normal file
@@ -0,0 +1,95 @@
|
||||
"""Tests for Faker providers."""
|
||||
|
||||
import pytest
|
||||
from faker import Faker
|
||||
|
||||
from testdatagen.providers.testdata_provider import TestDataProvider
|
||||
|
||||
|
||||
class TestTestDataProvider:
|
||||
"""Tests for TestDataProvider class."""
|
||||
|
||||
def test_json_schema_type_boolean(self):
|
||||
"""Test boolean type generation."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "boolean"}, faker)
|
||||
assert isinstance(result, bool)
|
||||
|
||||
def test_json_schema_type_integer(self):
|
||||
"""Test integer type generation."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "integer"}, faker)
|
||||
assert isinstance(result, int)
|
||||
|
||||
def test_json_schema_type_integer_with_constraints(self):
|
||||
"""Test integer with min/max constraints."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "integer", "minimum": 10, "maximum": 20}, faker)
|
||||
assert isinstance(result, int)
|
||||
assert 10 <= result <= 20
|
||||
|
||||
def test_json_schema_type_string(self):
|
||||
"""Test string type generation."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "string"}, faker)
|
||||
assert isinstance(result, str)
|
||||
|
||||
def test_json_schema_type_string_with_format_email(self):
|
||||
"""Test string with email format."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "string", "format": "email"}, faker)
|
||||
assert isinstance(result, str)
|
||||
assert "@" in result
|
||||
|
||||
def test_json_schema_type_string_with_format_uuid(self):
|
||||
"""Test string with uuid format."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "string", "format": "uuid"}, faker)
|
||||
assert isinstance(result, str)
|
||||
assert "-" in result
|
||||
|
||||
def test_json_schema_type_string_with_format_date(self):
|
||||
"""Test string with date format."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "string", "format": "date-time"}, faker)
|
||||
assert isinstance(result, str)
|
||||
|
||||
def test_json_schema_type_with_enum(self):
|
||||
"""Test type with enum constraint."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
schema = {"type": "string", "enum": ["red", "green", "blue"]}
|
||||
result = provider.json_schema_type(schema, faker)
|
||||
|
||||
assert result in ["red", "green", "blue"]
|
||||
|
||||
def test_json_schema_type_with_pattern(self):
|
||||
"""Test type with pattern constraint."""
|
||||
faker = Faker()
|
||||
provider = TestDataProvider(faker)
|
||||
|
||||
result = provider.json_schema_type({"type": "string", "pattern": "^[a-z]+$"}, faker)
|
||||
assert isinstance(result, str)
|
||||
|
||||
def test_provider_is_registered(self):
|
||||
"""Test that provider can be added to Faker."""
|
||||
faker = Faker()
|
||||
assert TestDataProvider not in faker.providers
|
||||
|
||||
faker.add_provider(TestDataProvider)
|
||||
assert TestDataProvider in faker.providers
|
||||
Reference in New Issue
Block a user