test_openpy.py
38 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r6452 | import io | ||
import os.path | ||||
from IPython.utils import openpy | ||||
mydir = os.path.dirname(__file__) | ||||
Matthias Bussonnier
|
r25105 | nonascii_path = os.path.join(mydir, "../../core/tests/nonascii.py") | ||
Thomas Kluyver
|
r6452 | |||
def test_detect_encoding(): | ||||
Matthias Bussonnier
|
r25105 | with open(nonascii_path, "rb") as f: | ||
Mickaël Schoentgen
|
r24897 | enc, lines = openpy.detect_encoding(f.readline) | ||
Samuel Gaist
|
r26922 | assert enc == "iso-8859-5" | ||
Matthias Bussonnier
|
r25105 | |||
Thomas Kluyver
|
r6452 | |||
def test_read_file(): | ||||
Matthias Bussonnier
|
r25105 | with io.open(nonascii_path, encoding="iso-8859-5") as f: | ||
Matthias Bussonnier
|
r25103 | read_specified_enc = f.read() | ||
Thomas Kluyver
|
r6452 | read_detected_enc = openpy.read_py_file(nonascii_path, skip_encoding_cookie=False) | ||
Samuel Gaist
|
r26922 | assert read_detected_enc == read_specified_enc | ||
Matthias Bussonnier
|
r25105 | assert "coding: iso-8859-5" in read_detected_enc | ||
read_strip_enc_cookie = openpy.read_py_file( | ||||
nonascii_path, skip_encoding_cookie=True | ||||
) | ||||
assert "coding: iso-8859-5" not in read_strip_enc_cookie | ||||
Thomas Kluyver
|
r15516 | |||
def test_source_to_unicode(): | ||||
Matthias Bussonnier
|
r25105 | with io.open(nonascii_path, "rb") as f: | ||
Thomas Kluyver
|
r15516 | source_bytes = f.read() | ||
Samuel Gaist
|
r26922 | assert ( | ||
openpy.source_to_unicode(source_bytes, skip_encoding_cookie=False).splitlines() | ||||
== source_bytes.decode("iso-8859-5").splitlines() | ||||
Matthias Bussonnier
|
r25105 | ) | ||
Thomas Kluyver
|
r15516 | |||
source_no_cookie = openpy.source_to_unicode(source_bytes, skip_encoding_cookie=True) | ||||
Samuel Gaist
|
r26922 | assert "coding: iso-8859-5" not in source_no_cookie | ||