Skip to content

Conversation

@nitinahuja89
Copy link
Collaborator

  • Implement complete test framework with pytest

    • Add sample tests covering find, aggregate, and insert operations
    • Multi-engine support with custom connection strings
    • Automatic test isolation and cleanup
    • Tag-based test organization and filtering
    • Parallel execution support with pytest-xdist
  • Add smart result analyzer

    • Automatic marker detection using heuristics
    • Filters test names, file names, and engine names
    • Categorizes failures: PASS/FAIL/UNSUPPORTED/INFRA_ERROR
    • CLI tool: docdb-analyze with text and JSON output
  • Configure development tools

    • Black for code formatting
    • isort for import sorting
    • flake8 for linting
    • mypy for type checking
    • pytest-cov for coverage reporting
  • Add comprehensive documentation

    • README with usage examples and best practices
    • CONTRIBUTING guide for writing tests
    • result_analyzer/README explaining analyzer behavior
    • All code formatted and linted
  • Add Docker support

    • Dockerfile for containerized testing
    • .dockerignore for clean builds

Nitin Ahuja added 5 commits January 9, 2026 14:28
- Implement complete test framework with pytest
  - 36 tests covering find, aggregate, and insert operations
  - Multi-engine support with custom connection strings
  - Automatic test isolation and cleanup
  - Tag-based test organization and filtering
  - Parallel execution support with pytest-xdist

- Add smart result analyzer
  - Automatic marker detection using heuristics
  - Filters test names, file names, and engine names
  - Categorizes failures: PASS/FAIL/UNSUPPORTED/INFRA_ERROR
  - CLI tool: docdb-analyze with text and JSON output

- Configure development tools
  - Black for code formatting
  - isort for import sorting
  - flake8 for linting
  - mypy for type checking
  - pytest-cov for coverage reporting

- Add comprehensive documentation
  - README with usage examples and best practices
  - CONTRIBUTING guide for writing tests
  - result_analyzer/README explaining analyzer behavior
  - All code formatted and linted

- Add Docker support
  - Dockerfile for containerized testing
  - .dockerignore for clean builds

Test Results: All 36 tests passed (100%) against DocumentDB
- Update test_find_empty_projection to use documents marker instead of manual insert
- Update test_match_empty_result to use documents marker instead of manual insert
- Ensures consistent test data setup and automatic cleanup
- All 36 tests still passing
- Remove json_report, json_report_indent, json_report_omit from config
- These are command-line options, not pytest.ini settings
- Add comment explaining proper usage
- All 36 tests still passing with no warnings
- Add GitHub Actions workflow for automated Docker builds
- Build for linux/amd64 and linux/arm64 platforms
- Push to GitHub Container Registry (ghcr.io)
- Auto-tags images: latest, sha-*, version tags
- Update README with pre-built image pull instructions
- Fix Dockerfile casing warning (FROM...AS)

Workflow Features:
- Runs on push to main and on pull requests
- Multi-platform support for Intel/AMD and ARM/Graviton
- Automatic versioning from git tags
- GitHub Actions cache for faster builds
- Uses dynamic repository variable (works on forks and upstream)
- Remove the 'Image digest' step that was causing exit code 127
- The metadata and tags are already captured by the build step
- Build step itself will show all relevant information in logs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant