blob: ebcf324fdea177ad806efd85ee847d4e1582c4c8 [file] [log] [blame]
# Copyright 2009 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import shutil
import subprocess
import tempfile
import unittest
# From http://lackingrhoticity.blogspot.com/2008/11/tempdirtestcase-python-unittest-helper.html
class TempDirTestCase(unittest.TestCase):
def setUp(self):
self._on_teardown = []
def make_temp_dir(self):
temp_dir = tempfile.mkdtemp(prefix="tmp-%s-" % self.__class__.__name__)
def tear_down():
shutil.rmtree(temp_dir)
self._on_teardown.append(tear_down)
return temp_dir
def tearDown(self):
for func in reversed(self._on_teardown):
func()
def write_file(filename, data):
fh = open(filename, "w")
try:
fh.write(data)
finally:
fh.close()
def read_file(filename):
fh = open(filename, "r")
try:
return fh.read()
finally:
fh.close()
# TODO: use subprocess.check_call when we have Python 2.5 on Windows.
def check_call(*args, **kwargs):
rc = subprocess.call(*args, **kwargs)
if rc != 0:
raise Exception("Failed with return code %i" % rc)