annotate Lib/test/test_support.py @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 1cbd3d9f7d61
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
2
76303
2dd046be2c88 Issue #2377: Make importlib the implementation of __import__().
Brett Cannon <brett@python.org>
parents: 71721
diff changeset
3 import importlib
84887
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
4 import shutil
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
5 import sys
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
6 import os
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
7 import unittest
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
8 import socket
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
9 import tempfile
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
10 import errno
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
11 from test import support
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
12
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
13 TESTFN = support.TESTFN
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
14 TESTDIRN = os.path.basename(tempfile.mkdtemp(dir='.'))
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
15
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
16
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
17 class TestSupport(unittest.TestCase):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
18 def setUp(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
19 support.unlink(TESTFN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
20 support.rmtree(TESTDIRN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
21 tearDown = setUp
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
22
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
23 def test_import_module(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
24 support.import_module("ftplib")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
25 self.assertRaises(unittest.SkipTest, support.import_module, "foo")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
26
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
27 def test_import_fresh_module(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
28 support.import_fresh_module("ftplib")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
29
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
30 def test_get_attribute(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
31 self.assertEqual(support.get_attribute(self, "test_get_attribute"),
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
32 self.test_get_attribute)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
33 self.assertRaises(unittest.SkipTest, support.get_attribute, self, "foo")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
34
71473
0018a28583f4 Issue #11049: skip a test that fails on some buildbots
Eli Bendersky <eliben@gmail.com>
parents: 71466
diff changeset
35 @unittest.skip("failing buildbots")
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
36 def test_get_original_stdout(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
37 self.assertEqual(support.get_original_stdout(), sys.stdout)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
38
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
39 def test_unload(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
40 import sched
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
41 self.assertIn("sched", sys.modules)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
42 support.unload("sched")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
43 self.assertNotIn("sched", sys.modules)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
44
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
45 def test_unlink(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
46 with open(TESTFN, "w") as f:
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
47 pass
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
48 support.unlink(TESTFN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
49 self.assertFalse(os.path.exists(TESTFN))
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
50 support.unlink(TESTFN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
51
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
52 def test_rmtree(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
53 os.mkdir(TESTDIRN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
54 os.mkdir(os.path.join(TESTDIRN, TESTDIRN))
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
55 support.rmtree(TESTDIRN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
56 self.assertFalse(os.path.exists(TESTDIRN))
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
57 support.rmtree(TESTDIRN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
58
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
59 def test_forget(self):
71686
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
60 mod_filename = TESTFN + '.py'
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
61 with open(mod_filename, 'w') as f:
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
62 print('foo = 1', file=f)
71721
07d94cf3521e Issue #11049: fix test_forget on installed Python - add os.curdir to sys.path
Eli Bendersky <eliben@gmail.com>
parents: 71686
diff changeset
63 sys.path.insert(0, os.curdir)
76303
2dd046be2c88 Issue #2377: Make importlib the implementation of __import__().
Brett Cannon <brett@python.org>
parents: 71721
diff changeset
64 importlib.invalidate_caches()
71686
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
65 try:
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
66 mod = __import__(TESTFN)
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
67 self.assertIn(TESTFN, sys.modules)
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
68
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
69 support.forget(TESTFN)
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
70 self.assertNotIn(TESTFN, sys.modules)
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
71 finally:
71721
07d94cf3521e Issue #11049: fix test_forget on installed Python - add os.curdir to sys.path
Eli Bendersky <eliben@gmail.com>
parents: 71686
diff changeset
72 del sys.path[0]
71686
1a978892a105 Issue #11049: fix test_forget to work on installed Python, by using a temporary module for import/forget
Eli Bendersky <eliben@gmail.com>
parents: 71473
diff changeset
73 support.unlink(mod_filename)
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
74
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
75 def test_HOST(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
76 s = socket.socket()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
77 s.bind((support.HOST, 0))
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
78 s.close()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
79
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
80 def test_find_unused_port(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
81 port = support.find_unused_port()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
82 s = socket.socket()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
83 s.bind((support.HOST, port))
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
84 s.close()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
85
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
86 def test_bind_port(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
87 s = socket.socket()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
88 support.bind_port(s)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
89 s.listen(1)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
90 s.close()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
91
84887
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
92 # Tests for temp_dir()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
93
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
94 def test_temp_dir(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
95 """Test that temp_dir() creates and destroys its directory."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
96 parent_dir = tempfile.mkdtemp()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
97 parent_dir = os.path.realpath(parent_dir)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
98
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
99 try:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
100 path = os.path.join(parent_dir, 'temp')
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
101 self.assertFalse(os.path.isdir(path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
102 with support.temp_dir(path) as temp_path:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
103 self.assertEqual(temp_path, path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
104 self.assertTrue(os.path.isdir(path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
105 self.assertFalse(os.path.isdir(path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
106 finally:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
107 shutil.rmtree(parent_dir)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
108
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
109 def test_temp_dir__path_none(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
110 """Test passing no path."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
111 with support.temp_dir() as temp_path:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
112 self.assertTrue(os.path.isdir(temp_path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
113 self.assertFalse(os.path.isdir(temp_path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
114
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
115 def test_temp_dir__existing_dir__quiet_default(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
116 """Test passing a directory that already exists."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
117 def call_temp_dir(path):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
118 with support.temp_dir(path) as temp_path:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
119 raise Exception("should not get here")
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
120
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
121 path = tempfile.mkdtemp()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
122 path = os.path.realpath(path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
123 try:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
124 self.assertTrue(os.path.isdir(path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
125 self.assertRaises(FileExistsError, call_temp_dir, path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
126 # Make sure temp_dir did not delete the original directory.
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
127 self.assertTrue(os.path.isdir(path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
128 finally:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
129 shutil.rmtree(path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
130
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
131 def test_temp_dir__existing_dir__quiet_true(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
132 """Test passing a directory that already exists with quiet=True."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
133 path = tempfile.mkdtemp()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
134 path = os.path.realpath(path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
135
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
136 try:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
137 with support.check_warnings() as recorder:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
138 with support.temp_dir(path, quiet=True) as temp_path:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
139 self.assertEqual(path, temp_path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
140 warnings = [str(w.message) for w in recorder.warnings]
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
141 # Make sure temp_dir did not delete the original directory.
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
142 self.assertTrue(os.path.isdir(path))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
143 finally:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
144 shutil.rmtree(path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
145
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
146 expected = ['tests may fail, unable to create temp dir: ' + path]
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
147 self.assertEqual(warnings, expected)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
148
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
149 # Tests for change_cwd()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
150
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
151 def test_change_cwd(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
152 original_cwd = os.getcwd()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
153
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
154 with support.temp_dir() as temp_path:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
155 with support.change_cwd(temp_path) as new_cwd:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
156 self.assertEqual(new_cwd, temp_path)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
157 self.assertEqual(os.getcwd(), new_cwd)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
158
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
159 self.assertEqual(os.getcwd(), original_cwd)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
160
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
161 def test_change_cwd__non_existent_dir(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
162 """Test passing a non-existent directory."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
163 original_cwd = os.getcwd()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
164
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
165 def call_change_cwd(path):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
166 with support.change_cwd(path) as new_cwd:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
167 raise Exception("should not get here")
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
168
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
169 with support.temp_dir() as parent_dir:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
170 non_existent_dir = os.path.join(parent_dir, 'does_not_exist')
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
171 self.assertRaises(FileNotFoundError, call_change_cwd,
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
172 non_existent_dir)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
173
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
174 self.assertEqual(os.getcwd(), original_cwd)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
175
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
176 def test_change_cwd__non_existent_dir__quiet_true(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
177 """Test passing a non-existent directory with quiet=True."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
178 original_cwd = os.getcwd()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
179
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
180 with support.temp_dir() as parent_dir:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
181 bad_dir = os.path.join(parent_dir, 'does_not_exist')
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
182 with support.check_warnings() as recorder:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
183 with support.change_cwd(bad_dir, quiet=True) as new_cwd:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
184 self.assertEqual(new_cwd, original_cwd)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
185 self.assertEqual(os.getcwd(), new_cwd)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
186 warnings = [str(w.message) for w in recorder.warnings]
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
187
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
188 expected = ['tests may fail, unable to change CWD to: ' + bad_dir]
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
189 self.assertEqual(warnings, expected)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
190
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
191 # Tests for change_cwd()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
192
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
193 def test_change_cwd__chdir_warning(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
194 """Check the warning message when os.chdir() fails."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
195 path = TESTFN + '_does_not_exist'
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
196 with support.check_warnings() as recorder:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
197 with support.change_cwd(path=path, quiet=True):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
198 pass
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
199 messages = [str(w.message) for w in recorder.warnings]
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
200 self.assertEqual(messages, ['tests may fail, unable to change CWD to: ' + path])
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
201
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
202 # Tests for temp_cwd()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
203
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
204 def test_temp_cwd(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
205 here = os.getcwd()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
206 with support.temp_cwd(name=TESTFN):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
207 self.assertEqual(os.path.basename(os.getcwd()), TESTFN)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
208 self.assertFalse(os.path.exists(TESTFN))
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
209 self.assertTrue(os.path.basename(os.getcwd()), here)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
210
84887
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
211
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
212 def test_temp_cwd__name_none(self):
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
213 """Test passing None to temp_cwd()."""
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
214 original_cwd = os.getcwd()
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
215 with support.temp_cwd(name=None) as new_cwd:
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
216 self.assertNotEqual(new_cwd, original_cwd)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
217 self.assertTrue(os.path.isdir(new_cwd))
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
218 self.assertEqual(os.getcwd(), new_cwd)
4f0034477ba9 Close #15415: Factor out temp dir helpers to test.support
Nick Coghlan <ncoghlan@gmail.com>
parents: 84548
diff changeset
219 self.assertEqual(os.getcwd(), original_cwd)
79087
b1d6daface10 #15304: merge with 3.2.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 76303
diff changeset
220
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
221 def test_sortdict(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
222 self.assertEqual(support.sortdict({3:3, 2:2, 1:1}), "{1: 1, 2: 2, 3: 3}")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
223
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
224 def test_make_bad_fd(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
225 fd = support.make_bad_fd()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
226 with self.assertRaises(OSError) as cm:
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
227 os.write(fd, b"foo")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
228 self.assertEqual(cm.exception.errno, errno.EBADF)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
229
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
230 def test_check_syntax_error(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
231 support.check_syntax_error(self, "def class")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
232 self.assertRaises(AssertionError, support.check_syntax_error, self, "1")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
233
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
234 def test_CleanImport(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
235 import importlib
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
236 with support.CleanImport("asyncore"):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
237 importlib.import_module("asyncore")
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
238
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
239 def test_DirsOnSysPath(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
240 with support.DirsOnSysPath('foo', 'bar'):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
241 self.assertIn("foo", sys.path)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
242 self.assertIn("bar", sys.path)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
243 self.assertNotIn("foo", sys.path)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
244 self.assertNotIn("bar", sys.path)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
245
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
246 def test_captured_stdout(self):
84548
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
247 with support.captured_stdout() as stdout:
71466
e9d0503a2113 fixing whitespace in the previous commit
Eli Bendersky <eliben@gmail.com>
parents: 71465
diff changeset
248 print("hello")
84548
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
249 self.assertEqual(stdout.getvalue(), "hello\n")
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
250
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
251 def test_captured_stderr(self):
84548
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
252 with support.captured_stderr() as stderr:
71466
e9d0503a2113 fixing whitespace in the previous commit
Eli Bendersky <eliben@gmail.com>
parents: 71465
diff changeset
253 print("hello", file=sys.stderr)
84548
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
254 self.assertEqual(stderr.getvalue(), "hello\n")
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
255
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
256 def test_captured_stdin(self):
84548
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
257 with support.captured_stdin() as stdin:
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
258 stdin.write('hello\n')
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
259 stdin.seek(0)
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
260 # call test code that consumes from sys.stdin
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
261 captured = input()
af2416c2e27c #17987: properly document support.captured_xxx.
R David Murray <rdmurray@bitdance.com>
parents: 79087
diff changeset
262 self.assertEqual(captured, "hello")
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
263
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
264 def test_gc_collect(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
265 support.gc_collect()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
266
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
267 def test_python_is_optimized(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
268 self.assertIsInstance(support.python_is_optimized(), bool)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
269
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
270 def test_swap_attr(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
271 class Obj:
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
272 x = 1
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
273 obj = Obj()
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
274 with support.swap_attr(obj, "x", 5):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
275 self.assertEqual(obj.x, 5)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
276 self.assertEqual(obj.x, 1)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
277
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
278 def test_swap_item(self):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
279 D = {"item":1}
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
280 with support.swap_item(D, "item", 5):
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
281 self.assertEqual(D["item"], 5)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
282 self.assertEqual(D["item"], 1)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
283
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
284 # XXX -follows a list of untested API
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
285 # make_legacy_pyc
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
286 # is_resource_enabled
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
287 # requires
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
288 # fcmp
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
289 # umaks
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
290 # findfile
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
291 # check_warnings
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
292 # EnvironmentVarGuard
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
293 # TransientResource
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
294 # transient_internet
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
295 # run_with_locale
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
296 # set_memlimit
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
297 # bigmemtest
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
298 # precisionbigmemtest
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
299 # bigaddrspacetest
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
300 # requires_resource
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
301 # run_doctest
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
302 # threading_cleanup
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
303 # reap_threads
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
304 # reap_children
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
305 # strip_python_stderr
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
306 # args_from_interpreter_flags
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
307 # can_symlink
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
308 # skip_unless_symlink
86164
1cbd3d9f7d61 Issue #18948: improve SuppressCoreFiles to include Windows crash popup suppression, and use it in more tests.
Antoine Pitrou <solipsis@pitrou.net>
parents: 85576
diff changeset
309 # SuppressCrashReport
71465
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
310
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
311
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
312 def test_main():
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
313 tests = [TestSupport]
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
314 support.run_unittest(*tests)
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
315
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
316 if __name__ == '__main__':
be558ad15789 Issue #11049: adding some tests to test.support
Eli Bendersky <eliben@gmail.com>
parents:
diff changeset
317 test_main()