test_openpy.py
39 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r6452 | import io | ||
import os.path | ||||
import nose.tools as nt | ||||
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) | ||
Matthias Bussonnier
|
r25105 | nt.assert_equal(enc, "iso-8859-5") | ||
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) | ||
nt.assert_equal(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() | ||
Matthias Bussonnier
|
r25105 | nt.assert_equal( | ||
openpy.source_to_unicode(source_bytes, skip_encoding_cookie=False).splitlines(), | ||||
source_bytes.decode("iso-8859-5").splitlines(), | ||||
) | ||||
Thomas Kluyver
|
r15516 | |||
source_no_cookie = openpy.source_to_unicode(source_bytes, skip_encoding_cookie=True) | ||||
Matthias Bussonnier
|
r25105 | nt.assert_not_in("coding: iso-8859-5", source_no_cookie) | ||