Re-upload: CI infrastructure issue resolved, all tests verified passing

This commit is contained in:
Developer
2026-03-22 16:48:09 +00:00
parent 71bae33ea9
commit 24b94c12bc
165 changed files with 23945 additions and 436 deletions

View File

@@ -0,0 +1,145 @@
import json
import pytest
from api_mock_cli.core.data_generator import FakeDataGenerator
class TestFakeDataGenerator:
def test_detect_email_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("email", "test@example.com")
assert field_type == "email"
def test_detect_name_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("full_name", "John Doe")
assert field_type == "name"
def test_detect_id_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("user_id", "12345")
assert field_type == "id"
def test_detect_date_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("created_at", "2024-01-01T00:00:00Z")
assert field_type == "date"
def test_detect_uuid_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("uuid", "123e4567-e89b-12d3-a456-426614174000")
assert field_type == "uuid"
def test_detect_phone_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("phone_number", "+1-555-123-4567")
assert field_type == "phone"
def test_detect_boolean_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("is_active", True)
assert field_type == "boolean"
def test_detect_integer_field(self):
generator = FakeDataGenerator()
field_type = generator._detect_field_type("count", 42)
assert field_type == "integer"
def test_generate_scalar_email(self):
generator = FakeDataGenerator()
value = generator._generate_scalar("email")
assert "@" in value
def test_generate_scalar_name(self):
generator = FakeDataGenerator()
value = generator._generate_scalar("name")
assert len(value) > 0
assert " " in value or len(value.split()) == 1
def test_generate_scalar_uuid(self):
generator = FakeDataGenerator()
value = generator._generate_scalar("uuid")
assert len(value) == 36
assert "-" in value
def test_generate_from_dict_simple(self):
generator = FakeDataGenerator()
data = {
"id": 123,
"name": "Test User",
"email": "test@example.com",
"created_at": "2024-01-01",
}
result = generator.generate_from_dict(data)
assert "id" in result
assert "name" in result
assert "email" in result
assert "created_at" in result
def test_generate_from_dict_nested(self):
generator = FakeDataGenerator()
data = {
"user": {
"id": 123,
"profile": {
"name": "John",
"email": "john@example.com",
}
}
}
result = generator.generate_from_dict(data)
assert "user" in result
assert "id" in result["user"]
assert "profile" in result["user"]
assert "name" in result["user"]["profile"]
def test_generate_from_dict_array(self):
generator = FakeDataGenerator()
data = {
"users": [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"},
]
}
result = generator.generate_from_dict(data)
assert "users" in result
assert len(result["users"]) == 2
def test_generate_from_json_string(self):
generator = FakeDataGenerator()
json_str = '{"id": 123, "name": "Test"}'
result = generator.generate_from_json(json_str)
parsed = json.loads(result)
assert "id" in parsed
assert "name" in parsed
def test_generate_response_preserves_structure(self):
generator = FakeDataGenerator()
original = '{"id": 123, "name": "Test", "email": "test@example.com"}'
result = generator.generate_response(original, preserve_structure=True)
parsed = json.loads(result)
assert "id" in parsed
assert "name" in parsed
assert "email" in parsed
def test_generate_response_with_array(self):
generator = FakeDataGenerator()
original = '{"users": [{"id": 1}, {"id": 2}]}'
result = generator.generate_response(original, preserve_structure=True)
parsed = json.loads(result)
assert "users" in parsed
assert len(parsed["users"]) == 2
def test_field_detection_by_value_patterns(self):
generator = FakeDataGenerator()
assert generator._detect_field_type("field", "user@example.com") == "email"
assert generator._detect_field_type("field", "123e4567-e89b-12d3-a456-426614174000") == "uuid"
assert generator._detect_field_type("field", "2024-01-01") == "date"
assert generator._detect_field_type("field", "https://example.com") == "url"