"""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_plain(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_string(self): """Test string type generation returns a string.""" faker = Faker() provider = TestDataProvider(faker) result = provider.json_schema_type({"type": "string"}, faker) assert isinstance(result, str) def test_provider_can_be_added_to_faker(self): """Test that provider can be added to Faker instance.""" faker = Faker() original_count = len(faker.providers) faker.add_provider(TestDataProvider) assert len(faker.providers) == original_count + 1