[py-svn] r37739 - in py/trunk/py/apigen/source: . testing
guido at codespeak.net
guido at codespeak.net
Thu Feb 1 15:57:36 CET 2007
Author: guido
Date: Thu Feb 1 15:57:34 2007
New Revision: 37739
Modified:
py/trunk/py/apigen/source/html.py
py/trunk/py/apigen/source/testing/test_html.py
Log:
Made that only the first two lines of a source file are examined for the
encoding.
Modified: py/trunk/py/apigen/source/html.py
==============================================================================
--- py/trunk/py/apigen/source/html.py (original)
+++ py/trunk/py/apigen/source/html.py Thu Feb 1 15:57:34 2007
@@ -261,8 +261,15 @@
if path[-1] in ['c', 'o']:
path = path[:-1]
fpath = py.path.local(path)
- code = fpath.read()
- match = _reg_enc.search(code)
+ fp = fpath.open()
+ lines = []
+ try:
+ # encoding is only allowed in the first two lines
+ for i in range(2):
+ lines.append(fp.readline())
+ finally:
+ fp.close()
+ match = _reg_enc.search('\n'.join(lines))
if match:
return match.group(1)
return 'ISO-8859-1'
Modified: py/trunk/py/apigen/source/testing/test_html.py
==============================================================================
--- py/trunk/py/apigen/source/testing/test_html.py (original)
+++ py/trunk/py/apigen/source/testing/test_html.py Thu Feb 1 15:57:34 2007
@@ -177,3 +177,14 @@
""")))
assert get_module_encoding(fpath.strpath) == 'UTF-8'
+def test_get_encoding_matching_pattern_elsewhere():
+ temp = py.test.ensuretemp('test_get_encoding')
+ fpath = temp.join('matching_pattern.py')
+ fpath.write(str(py.code.Source("""\
+ #!/usr/bin/env python
+
+ def foo(coding=None):
+ pass
+ """)))
+ assert get_module_encoding(fpath.strpath) == 'ISO-8859-1'
+
More information about the pytest-commit
mailing list