Commit Graph

15 Commits

Author SHA1 Message Date
Mondo Diaz
1f923ae71d Fix auth tests to not invalidate integration_client session
Password change tests were using the admin account, which invalidated
all admin sessions including the shared integration_client. Now all
password change tests create and use dedicated test users, keeping
the admin session intact for other tests.

Tests updated:
- test_change_password_success
- test_change_password_wrong_current
- test_password_too_short_on_change
2026-01-16 21:28:30 +00:00
Mondo Diaz
28b434b944 Add function-scoped auth_client fixture for auth tests
- Add auth_client fixture (function-scoped) for authentication tests
- Update all tests in test_auth_api.py to use auth_client
- Prevents auth tests from polluting the shared integration_client session
- Each auth test gets a fresh client, avoiding state leakage
2026-01-16 21:14:40 +00:00
Mondo Diaz
29e8638d7b Add configurable rate limiting for dev/stage environments
- Add ORCHARD_LOGIN_RATE_LIMIT env var to Helm deployment template
- Set relaxed rate limit (1000/minute) for dev/stage deployments
- Production keeps strict default (5/minute) for security
- Re-enable auth tests in CI (no longer excluded by marker)
- Update test docstrings to reflect rate limit configuration
2026-01-16 21:13:18 +00:00
Mondo Diaz
dcd043e9ba Fix CI integration test rate limiting
- Add auth_intensive marker for tests that make many login requests
- Mark all tests in test_auth_api.py with auth_intensive
- Exclude auth_intensive tests from CI integration runs against deployed
  environments (they trigger 429 rate limiting)
- Remove duplicate TestSecurityEdgeCases class definition
- Register auth_intensive, integration, large, slow markers in conftest.py
2026-01-16 21:08:47 +00:00
Mondo Diaz
722e7d2d81 Add large file upload enhancements and tests (#43)
- Add upload duration/throughput metrics (duration_ms, throughput_mbps) to response
- Add upload progress logging for large files (hash computation and multipart upload)
- Add client disconnect handling during uploads with proper cleanup
- Add upload progress tracking endpoint GET /upload/{upload_id}/progress
- Add large file upload tests (10MB, 100MB, 1GB)
- Add upload cancellation and timeout handling tests
- Add API documentation for upload endpoints with curl, Python, JavaScript examples
2026-01-16 19:33:31 +00:00
Mondo Diaz
a166b6d37f Add streaming download enhancements and tests (#42)
- Add conditional request support (If-None-Match, If-Modified-Since) returning 304 Not Modified
- Add caching headers: Cache-Control (immutable), Last-Modified
- Add 416 Range Not Satisfiable response for invalid range requests
- Add download completion logging with bytes transferred and throughput
- Add client disconnect handling during streaming downloads
- Add comprehensive streaming download tests
2026-01-16 18:55:34 +00:00
Mondo Diaz
bce27c43f3 Add comprehensive integrity verification tests
- Round-trip verification: upload → download → verify hash matches
- Client-side verification workflow: pre-upload hash computation, checksum header validation
- Size variant tests: integrity verification for 1KB, 100KB, 1MB, 10MB files
- Consistency check endpoint: response format, after upload, limit parameter
- Digest header tests: RFC 3230 format validation, base64 encoding
- Verification modes: pre-verification and streaming verification
- Corruption detection tests:
  - Single bit flip detection
  - Truncated content detection
  - Appended content detection
  - Client-side hash mismatch detection
  - Consistency check detects size mismatches
  - Consistency check detects missing S3 objects
2026-01-16 18:13:03 +00:00
Mondo Diaz
2bb619975e Add version API tests for new package_versions feature
- Add tests for version creation via upload with explicit version parameter
- Add tests for version auto-detection from filename/metadata
- Add tests for version listing and retrieval
- Add tests for download by version: prefix
- Add tests for version deletion
- Test version resolution priority (version: vs tag: prefixes)
2026-01-16 17:46:38 +00:00
Mondo Diaz
e7ae94b1e1 Merge main into feature/upload-download-tests 2026-01-16 17:39:35 +00:00
Mondo Diaz
4deadc708f Add comprehensive upload/download API tests and error handling tests
- Add upload API tests: upload without tag, artifact creation, S3 storage
- Add download tests: tag: prefix, Content-Type/Length/Disposition headers
- Add download tests: 404 for nonexistent project/package/artifact
- Add checksum header tests: ETag, X-Checksum-SHA256
- Add error handling tests: timeout behavior, checksum validation
- Add resource cleanup tests: verify no orphans on failed uploads
- Add graceful error response tests: JSON format, detail messages
2026-01-16 17:37:09 +00:00
Mondo Diaz
b93d5a9c68 Add separate version tracking for artifacts 2026-01-16 11:36:08 -06:00
Mondo Diaz
9106e79aac Add upload/download tests for size boundaries and concurrency
- Add size boundary tests: 1B, 1KB, 10KB, 100KB, 1MB, 5MB, 10MB, 50MB
- Add large file tests (100MB-1GB) marked with @pytest.mark.large
- Add chunk boundary tests at 64KB boundaries
- Add concurrent upload/download tests (2, 5, 10 parallel)
- Add data integrity tests (binary, text, unicode, compressed)
- Add generate_content() and sized_content fixture for test helpers
- Add @pytest.mark.large and @pytest.mark.concurrent markers
- Fix Content-Disposition header encoding for non-ASCII filenames (RFC 5987)
2026-01-16 17:22:16 +00:00
Mondo Diaz
617bcbe89c Implement authentication system with access control UI 2026-01-12 09:52:35 -07:00
Mondo Diaz
10d3694794 Add drag-and-drop upload component with chunked uploads and offline support 2026-01-08 11:59:32 -06:00
Mondo Diaz
2f1891cf01 Metadata database tracks all uploads with project, package, tag, and timestamp queryable via API 2026-01-07 12:31:44 -06:00