Issue #9308: Removed redundant coding cookies. Added tests for

importing encoded modules that do not depend on specific stdlib
modules being encoded in a certain way.
This commit is contained in:
Alexander Belopolsky 2010-10-15 16:28:20 +00:00
parent c01537f742
commit e8f583244a
16 changed files with 59 additions and 21 deletions

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# #
# Python documentation build configuration file # Python documentation build configuration file
# #

View file

@ -1,4 +1,3 @@
# -*- coding: iso-8859-1 -*-
"""Get useful information from live Python objects. """Get useful information from live Python objects.
This module encapsulates the interface provided by the internal special This module encapsulates the interface provided by the internal special

View file

@ -1,5 +1,4 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: latin-1 -*-
"""Generate Python documentation in HTML or text for interactive use. """Generate Python documentation in HTML or text for interactive use.
In the Python interpreter, do "from pydoc import help" to provide online In the Python interpreter, do "from pydoc import help" to provide online

View file

@ -0,0 +1,23 @@
# -*- encoding: utf-8 -*-
# This is a package that contains a number of modules that are used to
# test import from the source files that have different encodings.
# This file (the __init__ module of the package), is encoded in utf-8
# and contains a list of strings from various unicode planes that are
# encoded differently to compare them to the same strings encoded
# differently in submodules. The following list, test_strings,
# contains a list of tuples. The first element of each tuple is the
# suffix that should be prepended with 'module_' to arrive at the
# encoded submodule name, the second item is the encoding and the last
# is the test string. The same string is assigned to the variable
# named 'test' inside the submodule. If the decoding of modules works
# correctly, from module_xyz import test should result in the same
# string as listed below in the 'xyz' entry.
# module, encoding, test string
test_strings = (
('iso_8859_1', 'iso-8859-1', "Les hommes ont oublié cette vérité, "
"dit le renard. Mais tu ne dois pas l'oublier. Tu deviens "
"responsable pour toujours de ce que tu as apprivoisé."),
('koi8_r', 'koi8-r', "Познание бесконечности требует бесконечного времени.")
)

View file

@ -0,0 +1,5 @@
# test iso-8859-1 encoding
# -*- encoding: iso-8859-1 -*-
test = ("Les hommes ont oublié cette vérité, "
"dit le renard. Mais tu ne dois pas l'oublier. Tu deviens "
"responsable pour toujours de ce que tu as apprivoisé.")

View file

@ -0,0 +1,3 @@
# test koi8-r encoding
# -*- encoding: koi8-r -*-
test = "Познание бесконечности требует бесконечного времени."

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2001,2002 Python Software Foundation # Copyright (C) 2001,2002 Python Software Foundation
# csv package unit tests # csv package unit tests

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
"""A module to test whether doctest recognizes some 2.2 features, """A module to test whether doctest recognizes some 2.2 features,
like static and class methods. like static and class methods.

View file

@ -5,7 +5,7 @@ import shutil
import sys import sys
import unittest import unittest
from test import support from test import support
import importlib
class LockTests(unittest.TestCase): class LockTests(unittest.TestCase):
@ -42,18 +42,32 @@ class LockTests(unittest.TestCase):
"RuntimeError") "RuntimeError")
class ImportTests(unittest.TestCase): class ImportTests(unittest.TestCase):
def setUp(self):
mod = importlib.import_module('test.encoded_modules')
self.test_strings = mod.test_strings
self.test_path = mod.__path__
def test_import_encoded_module(self):
for modname, encoding, teststr in self.test_strings:
mod = importlib.import_module('test.encoded_modules.'
'module_' + modname)
self.assertEqual(teststr, mod.test)
def test_find_module_encoding(self): def test_find_module_encoding(self):
fd = imp.find_module("pydoc")[0] for mod, encoding, _ in self.test_strings:
self.assertEqual(fd.encoding, "iso-8859-1") fd = imp.find_module('module_' + mod, self.test_path)[0]
self.assertEqual(fd.encoding, encoding)
def test_issue1267(self): def test_issue1267(self):
fp, filename, info = imp.find_module("pydoc") for mod, encoding, _ in self.test_strings:
self.assertNotEqual(fp, None) fp, filename, info = imp.find_module('module_' + mod,
self.assertEqual(fp.encoding, "iso-8859-1") self.test_path)
self.assertEqual(fp.tell(), 0) self.assertNotEqual(fp, None)
self.assertEqual(fp.readline(), '#!/usr/bin/env python3\n') self.assertEqual(fp.encoding, encoding)
fp.close() self.assertEqual(fp.tell(), 0)
self.assertEqual(fp.readline(), '# test %s encoding\n'
% encoding)
fp.close()
fp, filename, info = imp.find_module("tokenize") fp, filename, info = imp.find_module("tokenize")
self.assertNotEqual(fp, None) self.assertNotEqual(fp, None)

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
import unittest import unittest
from test import support from test import support

View file

@ -1,4 +1,3 @@
# -*- coding: iso-8859-1 -*-
import unittest, test.support import unittest, test.support
import sys, io, os import sys, io, os
import struct import struct

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# Test the windows specific win32reg module. # Test the windows specific win32reg module.
# Only win32reg functions not hit here: FlushKey, LoadKey and SaveKey # Only win32reg functions not hit here: FlushKey, LoadKey and SaveKey

View file

@ -872,7 +872,7 @@ XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
tkinter/test/test_ttk site-packages test \ tkinter/test/test_ttk site-packages test \
test/decimaltestdata test/xmltestdata \ test/decimaltestdata test/xmltestdata \
test/tracedmodules \ test/tracedmodules test/encoded_modules \
concurrent encodings \ concurrent encodings \
email email/mime email/test email/test/data \ email email/mime email/test email/test/data \
html json json/tests http dbm xmlrpc \ html json json/tests http dbm xmlrpc \

View file

@ -403,6 +403,9 @@ Tools/Demos
Tests Tests
----- -----
- Issue #9308: Added tests for importing encoded modules that do not
depend on specific stdlib modules being encoded in a certain way.
- Issue #1051: Add a script (Lib/test/make_ssl_certs.py) to generate the custom - Issue #1051: Add a script (Lib/test/make_ssl_certs.py) to generate the custom
certificate and private key files used by SSL-related certs. certificate and private key files used by SSL-related certs.

View file

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# This file should be kept compatible with both Python 2.6 and Python >= 3.0. # This file should be kept compatible with both Python 2.6 and Python >= 3.0.
from __future__ import division from __future__ import division

View file

@ -1,6 +1,5 @@
#! /usr/bin/env python3 #! /usr/bin/env python3
# -*- coding: iso-8859-1 -*- # Written by Martin v. Löwis <loewis@informatik.hu-berlin.de>
# Written by Martin v. Löwis <loewis@informatik.hu-berlin.de>
"""Generate binary message catalog from textual translation description. """Generate binary message catalog from textual translation description.