def _check_line_for_encoding(line): """returns the declared encoding or None""" i = 0 for i in range(len(line)): if line[i] == '#': break if line[i] not in ' \t\014': return None return match_encoding_declaration(line[i:])
def test_encoding_declarations_match(): checks = [ ('# -*- coding: ISO-8859-1 -*-', 'ISO-8859-1'), ('# -*- coding: ISO-8859-1 -*-\n', 'ISO-8859-1'), ('# -*- coding: ISO-8859-1', 'ISO-8859-1'), ('# -*- coding= UTF-8', 'UTF-8'), ('# coding= UTF-8', 'UTF-8'), ('# coding= UTF-8 hello', 'UTF-8'), ('# -*- coding: ISO_8859-1', 'ISO_8859-1'), ('# -*- coding ISO_8859-1', None), ('# coding ISO_8859-1', None), ] for comment, encoding in checks: res = match_encoding_declaration(comment) assert res == encoding