Mercurial > cpython-lru_cache-weakref
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 |
| 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() |
