fix ensure_digest(block=True) call if no headers_buffer is available: #85
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Calling
ensure_digest(block=True)
on a record with no headers_buffer computed would cause an exception as RecordBuilder would access aself
in a class method.warcio/warcio/recordbuilder.py
Line 187 in 3fffe1e
Fixing so
header_filter
is now a member of RecordBuilder, andensure_digest
remains a regular method.Added test for
ensure_digest(block=True, payload=True)
Currently, Webrecorder is calling
ensure_digest(block=True, payload=True)
explicitly which might not be correct/necessary (https://github.com/webrecorder/webrecorder/blob/master/webrecorder/webrecorder/rec/webrecrecorder.py#L370) -- I think it does this for side-effect of computing the payload length for chunked payload and should be examined itself. Nevertheless, that should not cause warcio to break.