From f24fecd4ac9050799d02a8354b7acfa12b65b1d3 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sun, 16 Jun 2013 18:37:53 -0400 Subject: Issue #18076: Introduce imoportlib.util.decode_source(). The helper function makes it easier to implement imoprtlib.abc.InspectLoader.get_source() by making that function require just the raw bytes for source code and handling all other details. --- Lib/test/test_importlib/test_util.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'Lib/test/test_importlib/test_util.py') diff --git a/Lib/test/test_importlib/test_util.py b/Lib/test/test_importlib/test_util.py index 111607b952a..5fcbdae5734 100644 --- a/Lib/test/test_importlib/test_util.py +++ b/Lib/test/test_importlib/test_util.py @@ -9,6 +9,27 @@ import unittest import warnings +class DecodeSourceBytesTests(unittest.TestCase): + + source = "string ='ΓΌ'" + + def test_ut8_default(self): + source_bytes = self.source.encode('utf-8') + self.assertEqual(util.decode_source(source_bytes), self.source) + + def test_specified_encoding(self): + source = '# coding=latin-1\n' + self.source + source_bytes = source.encode('latin-1') + assert source_bytes != source.encode('utf-8') + self.assertEqual(util.decode_source(source_bytes), source) + + def test_universal_newlines(self): + source = '\r\n'.join([self.source, self.source]) + source_bytes = source.encode('utf-8') + self.assertEqual(util.decode_source(source_bytes), + '\n'.join([self.source, self.source])) + + class ModuleToLoadTests(unittest.TestCase): module_name = 'ModuleManagerTest_module' -- cgit v1.2.3