+def skipIfNotPLCredentials(func):
+ name = func.__name__
+ def wrapped(*args, **kwargs):
+ pl_user = os.environ.get("PL_USER")
+ pl_pass = os.environ.get("PL_PASS")
+ if not (pl_user and pl_pass):
+ print("*** WARNING: Skipping test %s: Planetlab user, password and slicename not defined\n" % name)
+ return
+
+ return func(*args, **kwargs)
+
+ return wrapped
+
+def skipIfNotPythonVersion(func):
+ name = func.__name__
+ def wrapped(*args, **kwargs):
+ if sys.version_info < 2.7:
+ print("*** WARNING: Skipping test %s: total_seconds() method doesn't exist\n" % name)
+ return
+
+ return func(*args, **kwargs)
+
+ return wrapped
+
+def skipIfNotSfaCredentials(func):
+ name = func.__name__
+ def wrapped(*args, **kwargs):
+ sfa_user = os.environ.get("SFA_USER")
+ sfa_pk = os.environ.get("SFA_PK")
+
+ if not (sfa_user and os.path.exists(os.path.expanduser(sfa_pk))):
+ print("*** WARNING: Skipping test %s: SFA path to private key doesn't exist\n" % name)
+ return
+
+ return func(*args, **kwargs)
+
+ return wrapped
+
+def skipIfNotSfi(func):
+ name = func.__name__
+ def wrapped(*args, **kwargs):
+ try:
+ from sfa.client.sfi import Sfi
+ from sfa.util.xrn import hrn_to_urn
+ except ImportError:
+ print("*** WARNING: Skipping test %s: sfi-client or sfi-common not installed\n" % name)
+ return
+
+ return func(*args, **kwargs)
+
+ return wrapped
+
+def skipIf(cond, text):
+ def wrapped(func, text):
+ name = func.__name__
+
+ def banner(*args, **kwargs):
+ sys.stderr.write("*** WARNING: Skipping test %s: `%s'\n" %
+ (name, text))
+ return None
+ return banner
+
+ return (lambda func: wrapped(func, text)) if cond else lambda func: func
+
+