Fix skip_because decorator

If we use skip_because decorator, the below error occurs.
 _StringException: ImportError: Failed to import test module:...
And, all tests of the class having the skip_because decorator are not
tested.
This commit fixes it.

Change-Id: I98e51d3bfd8b13dc3ef462eb92b170295f5f142e
Closes-Bug: #1236220
This commit is contained in:
Masayuki Igawa
2013-10-07 17:19:11 +09:00
parent 58daf5f1f0
commit 80c1b9f7eb

View File

@@ -16,6 +16,7 @@
# under the License.
import atexit
import functools
import os
import time
@@ -110,11 +111,14 @@ def skip_because(*args, **kwargs):
@param condition: optional condition to be True for the skip to have place
"""
def decorator(f):
@functools.wraps(f)
def wrapper(*func_args, **func_kwargs):
if "bug" in kwargs:
if "condition" not in kwargs or kwargs["condition"] is True:
msg = "Skipped until Bug: %s is resolved." % kwargs["bug"]
raise testtools.TestCase.skipException(msg)
return f
return f(*func_args, **func_kwargs)
return wrapper
return decorator