|
@@ -23,6 +23,7 @@ from ...helpers.parseformat import (
|
|
|
replace_placeholders,
|
|
|
swidth_slice,
|
|
|
eval_escapes,
|
|
|
+ ChunkerParams,
|
|
|
)
|
|
|
from ...helpers.time import format_timedelta, parse_timestamp
|
|
|
|
|
@@ -596,3 +597,35 @@ def test_eval_escapes():
|
|
|
assert eval_escapes("\\u0041") == "A" # ord('A') == 65 == 0x41
|
|
|
assert eval_escapes("\\U00000041") == "A" # ord('A') == 65 == 0x41
|
|
|
assert eval_escapes("äç\\n") == "äç\n"
|
|
|
+
|
|
|
+
|
|
|
+@pytest.mark.parametrize(
|
|
|
+ "chunker_params, expected_return",
|
|
|
+ [
|
|
|
+ ("default", ("buzhash", 19, 23, 21, 4095)),
|
|
|
+ ("19,23,21,4095", ("buzhash", 19, 23, 21, 4095)),
|
|
|
+ ("buzhash,19,23,21,4095", ("buzhash", 19, 23, 21, 4095)),
|
|
|
+ ("10,23,16,4095", ("buzhash", 10, 23, 16, 4095)),
|
|
|
+ ("fixed,4096", ("fixed", 4096, 0)),
|
|
|
+ ("fixed,4096,200", ("fixed", 4096, 200)),
|
|
|
+ ],
|
|
|
+)
|
|
|
+def test_valid_chunkerparams(chunker_params, expected_return):
|
|
|
+ assert ChunkerParams(chunker_params) == expected_return
|
|
|
+
|
|
|
+
|
|
|
+@pytest.mark.parametrize(
|
|
|
+ "invalid_chunker_params",
|
|
|
+ [
|
|
|
+ "crap,1,2,3,4", # invalid algo
|
|
|
+ "buzhash,5,7,6,4095", # too small min. size
|
|
|
+ "buzhash,19,24,21,4095", # too big max. size
|
|
|
+ "buzhash,23,19,21,4095", # violates min <= mask <= max
|
|
|
+ "fixed,63", # too small block size
|
|
|
+ "fixed,%d,%d" % (MAX_DATA_SIZE + 1, 4096), # too big block size
|
|
|
+ "fixed,%d,%d" % (4096, MAX_DATA_SIZE + 1), # too big header size
|
|
|
+ ],
|
|
|
+)
|
|
|
+def test_invalid_chunkerparams(invalid_chunker_params):
|
|
|
+ with pytest.raises(ArgumentTypeError):
|
|
|
+ ChunkerParams(invalid_chunker_params)
|