X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=t%2Fmoe%2Futil.py;h=a2ef34e602b762df66ba5121dba066616b85ba4b;hb=28e78d1db80bca9ae46fa0ef9a1161fb5f5ed787;hp=801d2c700925cff969b0aba8ae80f84bee6f6d3b;hpb=aa3a5774beaa7ad6a752169c66e97ddb4bdc8983;p=moe.git diff --git a/t/moe/util.py b/t/moe/util.py index 801d2c7..a2ef34e 100644 --- a/t/moe/util.py +++ b/t/moe/util.py @@ -2,16 +2,42 @@ import os import os.path +import shutil def mkdir_tree(name): try: os.mkdir(name) - except OSError, e: - if e.errno == os.errno.ENOENT: + except OSError, err: + if err.errno == os.errno.ENOENT: head, tail = os.path.split(name) mkdir_tree(head) os.mkdir(name) - elif e.errno == os.errno.EEXIST: + elif err.errno == os.errno.EEXIST: pass else: - raise e + raise err + +def link_or_copy(src, dest): + try: + os.link(src, dest) + except OSError: + shutil.copyfile(src, dest) + +def remove_tree_contents(dir): + for f in os.listdir(dir): + name = os.path.join(dir, f) + try: + os.unlink(name) + except OSError, err: + if err.errno == os.errno.EISDIR: + shutil.rmtree(os.path.join(dir, f)) + else: + raise err + +def load_module(modname): + """Return the module `modname` (full name) if loaded, or try to import it. + Returns the module or raises `ImportError`.""" + if not sys.modules.has_key(modname): + moe.log.debug("Loading module %s" % (path, name)) + __import__(modname) + return sys.modules[modname]