Home | History | Annotate | Download | only in tests
      1 #!/usr/bin/env python3
      2 
      3 import os
      4 import sys
      5 
      6 try:
      7     from tempfile import TemporaryDirectory
      8 except ImportError:
      9     import shutil
     10     import tempfile
     11 
     12     class TemporaryDirectory(object):
     13         def __init__(self, suffix='', prefix='tmp', dir=None):
     14             self.name = tempfile.mkdtemp(suffix, prefix, dir)
     15 
     16         def __del__(self):
     17             self.cleanup()
     18 
     19         def __enter__(self):
     20             return self.name
     21 
     22         def __exit__(self, exc, value, tb):
     23             self.cleanup()
     24 
     25         def cleanup(self):
     26             if self.name:
     27                 shutil.rmtree(self.name)
     28                 self.name = None
     29 
     30 if sys.version_info >= (3, 0):
     31     from os import makedirs
     32 else:
     33     def makedirs(path, exist_ok):
     34         if exist_ok and os.path.exists(path):
     35             return
     36         return os.makedirs(path)
     37 
     38 if sys.version_info >= (3, 0):
     39     from io import StringIO
     40 else:
     41     from StringIO import StringIO
     42