Commit | Line | Data |
---|---|---|
cd33dfe6 PP |
1 | # The MIT License (MIT) |
2 | # | |
3 | # Copyright (c) 2023 Philippe Proulx <eeppeliteloop@gmail.com> | |
4 | # | |
5 | # Permission is hereby granted, free of charge, to any person obtaining | |
6 | # a copy of this software and associated documentation files (the | |
7 | # "Software"), to deal in the Software without restriction, including | |
8 | # without limitation the rights to use, copy, modify, merge, publish, | |
9 | # distribute, sublicense, and/or sell copies of the Software, and to | |
10 | # permit persons to whom the Software is furnished to do so, subject to | |
11 | # the following conditions: | |
12 | # | |
13 | # The above copyright notice and this permission notice shall be | |
14 | # included in all copies or substantial portions of the Software. | |
15 | # | |
16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
17 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
18 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
19 | # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
20 | # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
21 | # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
22 | # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
23 | ||
24 | import bz2 | |
25 | import gzip | |
26 | import typing | |
27 | ||
28 | import normand | |
29 | ||
30 | ||
31 | def _test_comp(type: str, dec_func: typing.Callable[[bytes], bytes]): | |
32 | data = b"bonjour tout le monde \x00\x23\x42 \x17" + b"\x7b" * 500 | |
33 | ntext = "!t {} {} !end".format(type, data.hex()) | |
34 | res = normand.parse(ntext) | |
35 | assert dec_func(res.data) == data | |
36 | ||
37 | ||
38 | def test_gz(): | |
39 | _test_comp("gz", gzip.decompress) | |
40 | ||
41 | ||
42 | def test_bz2(): | |
43 | _test_comp("bz2", bz2.decompress) |