/Lib/distutils/tests/support.py

http://unladen-swallow.googlecode.com/ · Python · 66 lines · 37 code · 15 blank · 14 comment · 5 complexity · eed3e7cb6ba1a13fc9806c5fe71b0683 MD5 · raw file

  1. """Support code for distutils test cases."""
  2. import shutil
  3. import tempfile
  4. from distutils import log
  5. class LoggingSilencer(object):
  6. def setUp(self):
  7. super(LoggingSilencer, self).setUp()
  8. self.threshold = log.set_threshold(log.FATAL)
  9. def tearDown(self):
  10. log.set_threshold(self.threshold)
  11. super(LoggingSilencer, self).tearDown()
  12. class TempdirManager(object):
  13. """Mix-in class that handles temporary directories for test cases.
  14. This is intended to be used with unittest.TestCase.
  15. """
  16. def setUp(self):
  17. super(TempdirManager, self).setUp()
  18. self.tempdirs = []
  19. def tearDown(self):
  20. super(TempdirManager, self).tearDown()
  21. while self.tempdirs:
  22. d = self.tempdirs.pop()
  23. shutil.rmtree(d)
  24. def mkdtemp(self):
  25. """Create a temporary directory that will be cleaned up.
  26. Returns the path of the directory.
  27. """
  28. d = tempfile.mkdtemp()
  29. self.tempdirs.append(d)
  30. return d
  31. def write_file(self, path, content='xxx'):
  32. """Writes a file in the given path.
  33. path can be a string or a sequence.
  34. """
  35. if isinstance(path, (list, tuple)):
  36. path = os.path.join(*path)
  37. f = open(path, 'w')
  38. try:
  39. f.write(content)
  40. finally:
  41. f.close()
  42. class DummyCommand:
  43. """Class to store options for retrieval via set_undefined_options()."""
  44. def __init__(self, **kwargs):
  45. for kw, val in kwargs.items():
  46. setattr(self, kw, val)
  47. def ensure_finalized(self):
  48. pass