File: test_isbinary.py

package info (click to toggle)
python-charset-normalizer 3.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 712 kB
  • sloc: python: 5,434; makefile: 25; sh: 17
file content (29 lines) | stat: -rw-r--r-- 736 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from __future__ import annotations

import typing
from base64 import b64decode
from io import BytesIO
from os import pardir, path

import pytest

from charset_normalizer import is_binary

DIR_PATH = path.join(path.dirname(path.realpath(__file__)), pardir)


@pytest.mark.parametrize(
    "raw, expected",
    [
        (b"\x00\x5f\x2f\xff" * 50, True),
        (b64decode("R0lGODlhAQABAAAAACw="), True),
        (BytesIO(b64decode("R0lGODlhAQABAAAAACw=")), True),
        ("sample-polish.txt", False),
        ("sample-arabic.txt", False),
    ],
)
def test_isbinary(raw: bytes | typing.BinaryIO | str, expected: bool) -> None:
    if isinstance(raw, str):
        raw = DIR_PATH + f"/data/{raw}"

    assert is_binary(raw) is expected