1 import io 2 import os.path 3 4 from IPython.utils import openpy 5 6 mydir = os.path.dirname(__file__) 7 nonascii_path = os.path.join(mydir, "../../core/tests/nonascii.py") 8 9 10 def test_detect_encoding(): 11 with open(nonascii_path, "rb") as f: 12 enc, lines = openpy.detect_encoding(f.readline) 13 assert enc == "iso-8859-5" 14 15 16 def test_read_file(): 17 with io.open(nonascii_path, encoding="iso-8859-5") as f: 18 read_specified_enc = f.read() 19 read_detected_enc = openpy.read_py_file(nonascii_path, skip_encoding_cookie=False) 20 assert read_detected_enc == read_specified_enc 21 assert "coding: iso-8859-5" in read_detected_enc 22 23 read_strip_enc_cookie = openpy.read_py_file( 24 nonascii_path, skip_encoding_cookie=True 25 ) 26 assert "coding: iso-8859-5" not in read_strip_enc_cookie 27 28 29 def test_source_to_unicode(): 30 with io.open(nonascii_path, "rb") as f: 31 source_bytes = f.read() 32 assert ( 33 openpy.source_to_unicode(source_bytes, skip_encoding_cookie=False).splitlines() 34 == source_bytes.decode("iso-8859-5").splitlines() 35 ) 36 37 source_no_cookie = openpy.source_to_unicode(source_bytes, skip_encoding_cookie=True) 38 assert "coding: iso-8859-5" not in source_no_cookie 39