blob: 475ceee598bd76cdc6f13b5bd9257614f235c75d [file] [log] [blame]
Fred Drakeb8ab8b62004-06-17 20:14:50 +00001"""Support code for distutils test cases."""
2
3import shutil
4import tempfile
5
Fred Drakeedcac8f2004-08-03 18:53:07 +00006from distutils import log
7
8
9class LoggingSilencer(object):
10
11 def setUp(self):
12 super(LoggingSilencer, self).setUp()
13 self.threshold = log.set_threshold(log.FATAL)
14
15 def tearDown(self):
16 log.set_threshold(self.threshold)
17 super(LoggingSilencer, self).tearDown()
18
Fred Drakeb8ab8b62004-06-17 20:14:50 +000019
20class TempdirManager(object):
21 """Mix-in class that handles temporary directories for test cases.
22
23 This is intended to be used with unittest.TestCase.
24 """
25
26 def setUp(self):
27 super(TempdirManager, self).setUp()
28 self.tempdirs = []
29
30 def tearDown(self):
31 super(TempdirManager, self).tearDown()
32 while self.tempdirs:
33 d = self.tempdirs.pop()
34 shutil.rmtree(d)
35
36 def mkdtemp(self):
37 """Create a temporary directory that will be cleaned up.
38
39 Returns the path of the directory.
40 """
41 d = tempfile.mkdtemp()
42 self.tempdirs.append(d)
43 return d
44
45
46class DummyCommand:
47 """Class to store options for retrieval via set_undefined_options()."""
48
49 def __init__(self, **kwargs):
50 for kw, val in kwargs.items():
51 setattr(self, kw, val)
52
53 def ensure_finalized(self):
54 pass