Feature Request
Summary
VisaIQ has zero test coverage. Adding pytest unit tests would:
- Prevent regressions during future development
- Enable CI/CD on GitHub Actions
- Increase project credibility for open-source contributors
Proposed Test Suite
# tests/test_predict.py
import pytest
from predict import predict_with_confidence, validate_input, safe_encode
VALID_PAYLOAD = {
"country": "India",
"visa_type": "Student",
"application_date": "2024-06-01"
}
def test_valid_prediction_returns_dict():
result, error = predict_with_confidence(VALID_PAYLOAD)
assert error is None
assert isinstance(result, dict)
assert "days" in result
assert "confidence" in result
def test_confidence_in_valid_range():
result, _ = predict_with_confidence(VALID_PAYLOAD)
assert 0.0 <= result["confidence"] <= 100.0
def test_confidence_label_valid():
result, _ = predict_with_confidence(VALID_PAYLOAD)
assert result["confidence_label"] in ["High", "Medium", "Low"]
def test_missing_fields_returns_error():
errors = validate_input({"country": "India"})
assert len(errors) > 0
def test_invalid_date_format():
payload = {**VALID_PAYLOAD, "application_date": "01-06-2024"}
errors = validate_input(payload)
assert any("date" in e.lower() for e in errors)
def test_prediction_days_positive():
result, _ = predict_with_confidence(VALID_PAYLOAD)
assert result["days"] >= 1.0
GitHub Actions CI:
# .github/workflows/tests.yml
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pip install -r requirements.txt pytest
- run: pytest tests/ -v
enhancement testing pytest ci-cd
Feature Request
Summary
VisaIQ has zero test coverage. Adding pytest unit tests would:
Proposed Test Suite
GitHub Actions CI:
enhancementtestingpytestci-cd