Format: text/x-python
⬇ Download File (1.2 KB)
   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