mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
4a7c062dbd
This commit basically just adds the codes from the PR https://github.com/micahflee/onionshare/pull/804/commits on the newly structured and refactored code and also fixes import dependencies and changed any code that was relevant with the new code of onionshare
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
import pytest
|
|
import subprocess
|
|
|
|
from tempfile import NamedTemporaryFile
|
|
from werkzeug.exceptions import RequestedRangeNotSatisfiable
|
|
|
|
from onionshare_cli.web.share_mode import parse_range_header
|
|
|
|
|
|
VALID_RANGES = [
|
|
(None, 500, [(0, 499)]),
|
|
('bytes=0', 500, [(0, 499)]),
|
|
('bytes=100', 500, [(100, 499)]),
|
|
('bytes=100-', 500, [(100, 499)]), # not in the RFC, but how curl sends
|
|
('bytes=0-99', 500, [(0, 99)]),
|
|
('bytes=0-599', 500, [(0, 499)]),
|
|
('bytes=0-0', 500, [(0, 0)]),
|
|
('bytes=-100', 500, [(400, 499)]),
|
|
('bytes=0-99,100-199', 500, [(0, 199)]),
|
|
('bytes=0-100,100-199', 500, [(0, 199)]),
|
|
('bytes=0-99,101-199', 500, [(0, 99), (101, 199)]),
|
|
('bytes=0-199,100-299', 500, [(0, 299)]),
|
|
('bytes=0-99,200-299', 500, [(0, 99), (200, 299)]),
|
|
]
|
|
|
|
|
|
INVALID_RANGES = [
|
|
'bytes=200-100',
|
|
'bytes=0-100,300-200',
|
|
]
|
|
|
|
|
|
def test_parse_ranges():
|
|
for case in VALID_RANGES:
|
|
(header, target_size, expected) = case
|
|
parsed = parse_range_header(header, target_size)
|
|
assert parsed == expected, case
|
|
|
|
for invalid in INVALID_RANGES:
|
|
with pytest.raises(RequestedRangeNotSatisfiable):
|
|
parse_range_header(invalid, 500) |