faaf7367dc9e3a2c247672c81eaf40bb8f1c9a0a
[normand.git] / tests / test_trans_gz_bz2.py
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)
This page took 0.035681 seconds and 3 git commands to generate.