Created
August 4, 2015 18:48
-
-
Save jerith/2961497cc10c1cbee180 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from functools import wraps | |
from inspect import getargspec | |
from hypothesis import given | |
from hypothesis.internal.reflection import copy_argspec | |
from twisted.internet import reactor | |
from twisted.internet.threads import deferToThread, blockingCallFromThread | |
def given_defer(*generator_arguments, **generator_kwargs): | |
run_test_with_generator = given(*generator_arguments, **generator_kwargs) | |
@wraps(run_test_with_generator) | |
def defer_test_with_generator(test): | |
@wraps(test) | |
@copy_argspec(test.__name__, getargspec(test)) | |
def run_test_from_thread(*args, **kw): | |
return blockingCallFromThread(reactor, test, *args, **kw) | |
wrapped_test = run_test_with_generator(run_test_from_thread) | |
@wraps(wrapped_test) | |
def defer_wrapped_test(*args, **kw): | |
return deferToThread(wrapped_test, *args, **kw) | |
return defer_wrapped_test | |
return defer_test_with_generator |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment