Commit graph

1 commit

Author SHA1 Message Date
18a0af39d0 feat: comprehensive 4-mode testing framework for UN clients
Add complete testing infrastructure that validates clients in:

1. CLI MODE: Test as standalone command-line tool
   - Argument parsing (--help, --version)
   - File execution (un.py code.py)
   - Environment variables (-e VAR=val)
   - Commands (execute, session, service)

2. LIBRARY MODE: Test as importable SDK
   - Client object creation
   - Method availability (execute, create_session)
   - Authentication/HMAC generation
   - Return types and data structures

3. INTEGRATION MODE: Test API contract validation
   - Valid/invalid authentication (200/401)
   - Language support verification
   - Error handling (rate limits, timeouts)
   - Artifacts and file operations
   - Environment variable passing

4. FUNCTIONAL MODE: Real-world usage scenarios
   - Fibonacci calculation
   - Data analysis (pandas, etc.)
   - Web requests (semitrusted mode)
   - File I/O operations
   - Subprocess handling
   - JSON parsing
   - Error handling
   - Async/await code

Added:
- TEST-TEMPLATES.md: Complete test templates for Python, Go, JavaScript
  (easily adaptable to all 42+ languages)
  - Test structure examples for each mode
  - Python pytest, Go testing, Jest patterns
  - Integration patterns for API validation
  - Functional test scenarios

- Enhanced Makefile with multi-mode targets:
  - make test-python: All 4 modes for Python
  - make test-python-cli: Only CLI mode
  - make test-python-library: Only Library mode
  - make test-all-cli: CLI for all languages
  - make test-all: All modes for all languages
  - make test-integration-all: Cross-language API validation

How it works:
- Each client implementation tests as CLI AND library
- Integration validates auth, error codes, API contract
- Functional tests prove real-world usage works
- Makefile targets guide developers to create per-language tests
- CI can run all 4 modes or specific modes on changes
2026-01-15 15:56:55 -05:00