Initial commit
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Phase 4: Testing
|
||||
|
||||
**Objective**: Validate schema works with representative data
|
||||
|
||||
## Test Coverage
|
||||
|
||||
```python
|
||||
import pytest
|
||||
|
||||
@pytest.fixture
|
||||
def extractor():
|
||||
return ContactExtractor()
|
||||
|
||||
def test_complete_contact(extractor):
|
||||
"""Test with all fields present."""
|
||||
text = "John Smith (john@example.com) interested in Enterprise plan, wants demo"
|
||||
result = extractor.extract(text)
|
||||
|
||||
assert result.name == "John Smith"
|
||||
assert result.email == "john@example.com"
|
||||
assert result.plan_interest == "Enterprise"
|
||||
assert result.demo_requested is True
|
||||
|
||||
def test_minimal_contact(extractor):
|
||||
"""Test with only required fields."""
|
||||
text = "Contact: jane@example.com"
|
||||
result = extractor.extract(text)
|
||||
|
||||
assert result.email == "jane@example.com"
|
||||
assert result.name is not None # Claude should infer or extract
|
||||
assert result.plan_interest is None # Optional field
|
||||
assert result.demo_requested is False # Default
|
||||
|
||||
def test_invalid_input(extractor):
|
||||
"""Test with insufficient data."""
|
||||
text = "This has no contact information"
|
||||
# Depending on requirements, might raise or return partial data
|
||||
result = extractor.extract(text)
|
||||
# Define expected behavior
|
||||
|
||||
def test_refusal_scenario(extractor):
|
||||
"""Test that refusals are handled."""
|
||||
# Test with potentially unsafe content
|
||||
# Verify graceful handling without crash
|
||||
pass
|
||||
|
||||
def test_token_limit(extractor):
|
||||
"""Test with very long input."""
|
||||
text = "..." * 10000 # Very long text
|
||||
# Verify either succeeds or raises appropriate error
|
||||
pass
|
||||
```
|
||||
|
||||
## Output
|
||||
|
||||
Comprehensive test suite covering edge cases.
|
||||
Reference in New Issue
Block a user