mirror of
https://github.com/python/cpython.git
synced 2025-11-13 07:26:31 +00:00
Fixed unit tests for os.environ. Some of the tests didn't test at all because os.environ was empty.
Added import test for sys.path entries with non ASCII characters. The tests are passing on my Ubuntu box with utf-8 locales but they aren't passing on Windows XP.
This commit is contained in:
parent
e02647a669
commit
9033339673
2 changed files with 48 additions and 8 deletions
|
|
@ -3,10 +3,11 @@ from test.test_support import TESTFN, run_unittest, catch_warning
|
||||||
import unittest
|
import unittest
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import py_compile
|
import py_compile
|
||||||
import warnings
|
import warnings
|
||||||
from test.test_support import unlink
|
from test.test_support import unlink, TESTFN, unload
|
||||||
|
|
||||||
|
|
||||||
def remove_files(name):
|
def remove_files(name):
|
||||||
|
|
@ -157,8 +158,37 @@ class ImportTest(unittest.TestCase):
|
||||||
warnings.simplefilter('error', ImportWarning)
|
warnings.simplefilter('error', ImportWarning)
|
||||||
self.assertRaises(ImportWarning, __import__, "site-packages")
|
self.assertRaises(ImportWarning, __import__, "site-packages")
|
||||||
|
|
||||||
|
class UnicodePathsTests(unittest.TestCase):
|
||||||
|
SAMPLES = ('test', 'testäöüß', 'testéè', 'test°³²')
|
||||||
|
path = TESTFN
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
os.mkdir(self.path)
|
||||||
|
self.syspath = sys.path[:]
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
shutil.rmtree(self.path)
|
||||||
|
sys.path = self.syspath
|
||||||
|
|
||||||
|
def test_sys_path(self):
|
||||||
|
for i, subpath in enumerate(self.SAMPLES):
|
||||||
|
path = os.path.join(self.path, subpath)
|
||||||
|
os.mkdir(path)
|
||||||
|
self.failUnless(os.path.exists(path), os.listdir(self.path))
|
||||||
|
f = open(os.path.join(path, 'testimport%i.py' % i), 'w')
|
||||||
|
f.write("testdata = 'unicode path %i'\n" % i)
|
||||||
|
f.close()
|
||||||
|
sys.path.append(path)
|
||||||
|
try:
|
||||||
|
mod = __import__("testimport%i" % i)
|
||||||
|
except ImportError:
|
||||||
|
print(path, file=sys.stderr)
|
||||||
|
raise
|
||||||
|
self.assertEqual(mod.testdata, 'unicode path %i' % i)
|
||||||
|
unload("testimport%i" % i)
|
||||||
|
|
||||||
def test_main(verbose=None):
|
def test_main(verbose=None):
|
||||||
run_unittest(ImportTest)
|
run_unittest(ImportTest, UnicodePathsTests)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
test_main()
|
test_main()
|
||||||
|
|
|
||||||
|
|
@ -191,20 +191,26 @@ from test import mapping_tests
|
||||||
class EnvironTests(mapping_tests.BasicTestMappingProtocol):
|
class EnvironTests(mapping_tests.BasicTestMappingProtocol):
|
||||||
"""check that os.environ object conform to mapping protocol"""
|
"""check that os.environ object conform to mapping protocol"""
|
||||||
type2test = None
|
type2test = None
|
||||||
def _reference(self):
|
|
||||||
return {"KEY1":"VALUE1", "KEY2":"VALUE2", "KEY3":"VALUE3"}
|
|
||||||
def _empty_mapping(self):
|
|
||||||
os.environ.clear()
|
|
||||||
return os.environ
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.__save = dict(os.environ)
|
self.__save = dict(os.environ)
|
||||||
os.environ.clear()
|
for key, value in self._reference().items():
|
||||||
|
os.environ[key] = value
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
os.environ.clear()
|
os.environ.clear()
|
||||||
os.environ.update(self.__save)
|
os.environ.update(self.__save)
|
||||||
|
|
||||||
|
def _reference(self):
|
||||||
|
return {"KEY1":"VALUE1", "KEY2":"VALUE2", "KEY3":"VALUE3"}
|
||||||
|
|
||||||
|
def _empty_mapping(self):
|
||||||
|
os.environ.clear()
|
||||||
|
return os.environ
|
||||||
|
|
||||||
# Bug 1110478
|
# Bug 1110478
|
||||||
def test_update2(self):
|
def test_update2(self):
|
||||||
|
os.environ.clear()
|
||||||
if os.path.exists("/bin/sh"):
|
if os.path.exists("/bin/sh"):
|
||||||
os.environ.update(HELLO="World")
|
os.environ.update(HELLO="World")
|
||||||
value = os.popen("/bin/sh -c 'echo $HELLO'").read().strip()
|
value = os.popen("/bin/sh -c 'echo $HELLO'").read().strip()
|
||||||
|
|
@ -217,6 +223,10 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
|
||||||
self.assertEquals(type(key), str)
|
self.assertEquals(type(key), str)
|
||||||
self.assertEquals(type(val), str)
|
self.assertEquals(type(val), str)
|
||||||
|
|
||||||
|
def test_items(self):
|
||||||
|
for key, value in self._reference().items():
|
||||||
|
self.assertEqual(os.environ.get(key), value)
|
||||||
|
|
||||||
class WalkTests(unittest.TestCase):
|
class WalkTests(unittest.TestCase):
|
||||||
"""Tests for os.walk()."""
|
"""Tests for os.walk()."""
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue