Skip to content

feat(rufh): add Python conformity test suite and resolve RUFH draft-12 compliance failures - #110

Merged
tomdesair merged 8 commits into
masterfrom
feature/rufh-conformity-tests
Aug 1, 2026
Merged

feat(rufh): add Python conformity test suite and resolve RUFH draft-12 compliance failures#110
tomdesair merged 8 commits into
masterfrom
feature/rufh-conformity-tests

Conversation

@tomdesair

Copy link
Copy Markdown
Owner

Summary

This PR adds an independent Python conformity test suite (scripts/rufh_conformity_test.py) based on the IETF Resumable Uploads for HTTP (RUFH) draft-12 specification, and updates the Java server implementation to achieve 100% conformity test compliance.

Key Changes

  • Conformity Test Suite: Created scripts/rufh_conformity_test.py (29 tests) and updated documentation in docs/CONFORMITY_TESTING.md and README.md.
  • Protocol Version Auto-Detection: Refined Utils.detectProtocolVersion to handle RUFH requests and unversioned fallbacks.
  • Upload Append & Errors: Required Upload-Complete header on PATCH appends, formatted 409 Conflict mismatch responses with current server offset, and handled empty body PATCH finalizations.
  • Resource Deactivation: Implemented 404 Not Found responses for missing/expired upload resources on HEAD, GET, and DELETE requests.
  • HTTP Digests (RFC 9530): Added support for Want-Content-Digest and Want-Repr-Digest request header processing.
  • Download Extension Compatibility: Preserved 100% Tus 1.0.0 download behavior while delegating in-progress RUFH GET offset retrieval.
  • Unit Tests: Added dedicated unit tests covering all new and modified server behavior.

@coveralls

coveralls commented Jul 30, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 96.519% (+0.2%) from 96.295% — feature/rufh-conformity-tests into master

@tomdesair
tomdesair merged commit b6defe5 into master Aug 1, 2026
12 checks passed
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.

2 participants