"""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