##// END OF EJS Templates
Adjustment to console signal-handling...
Adjustment to console signal-handling Do not explicitly interrupt the kernel, because the subprocess already gets the interrupt. Once we properly prevent this, then the interrupt can be restored. Also, the KeyboardInterrupt is still raised if not executing, in order to restore the prompt. In ipkernel, the interrupt is ignored during poll, and restored after the loop exits, to prevent it being swallowed in future code that expects normal sigint behavior.

File last commit:

r4018:9950e71b
r5615:9a0989a4
Show More
test_dependency.py
106 lines | 3.3 KiB | text/x-python | PythonLexer
MinRK
update recently changed modules with Authors in docstring
r4018 """Tests for dependency.py
Authors:
* Min RK
"""
MinRK
update API after sagedays29...
r3664
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports
#-------------------------------------------------------------------------------
# import
import os
from IPython.utils.pickleutil import can, uncan
MinRK
organize IPython.parallel into subpackages
r3673 import IPython.parallel as pmod
MinRK
move IPython.zmq.parallel to IPython.parallel
r3666 from IPython.parallel.util import interactive
MinRK
update API after sagedays29...
r3664
MinRK
move IPython.zmq.parallel to IPython.parallel
r3666 from IPython.parallel.tests import add_engines
MinRK
update API after sagedays29...
r3664 from .clienttest import ClusterTestCase
def setup():
add_engines(1)
MinRK
organize IPython.parallel into subpackages
r3673 @pmod.require('time')
MinRK
update API after sagedays29...
r3664 def wait(n):
time.sleep(n)
return n
mixed = map(str, range(10))
completed = map(str, range(0,10,2))
failed = map(str, range(1,10,2))
class DependencyTest(ClusterTestCase):
def setUp(self):
ClusterTestCase.setUp(self)
self.user_ns = {'__builtins__' : __builtins__}
self.view = self.client.load_balanced_view()
self.dview = self.client[-1]
self.succeeded = set(map(str, range(0,25,2)))
self.failed = set(map(str, range(1,25,2)))
def assertMet(self, dep):
self.assertTrue(dep.check(self.succeeded, self.failed), "Dependency should be met")
def assertUnmet(self, dep):
self.assertFalse(dep.check(self.succeeded, self.failed), "Dependency should not be met")
def assertUnreachable(self, dep):
self.assertTrue(dep.unreachable(self.succeeded, self.failed), "Dependency should be unreachable")
def assertReachable(self, dep):
self.assertFalse(dep.unreachable(self.succeeded, self.failed), "Dependency should be reachable")
def cancan(self, f):
"""decorator to pass through canning into self.user_ns"""
return uncan(can(f), self.user_ns)
def test_require_imports(self):
"""test that @require imports names"""
@self.cancan
MinRK
organize IPython.parallel into subpackages
r3673 @pmod.require('urllib')
MinRK
update API after sagedays29...
r3664 @interactive
def encode(dikt):
return urllib.urlencode(dikt)
# must pass through canning to properly connect namespaces
self.assertEquals(encode(dict(a=5)), 'a=5')
def test_success_only(self):
MinRK
organize IPython.parallel into subpackages
r3673 dep = pmod.Dependency(mixed, success=True, failure=False)
MinRK
update API after sagedays29...
r3664 self.assertUnmet(dep)
self.assertUnreachable(dep)
dep.all=False
self.assertMet(dep)
self.assertReachable(dep)
MinRK
organize IPython.parallel into subpackages
r3673 dep = pmod.Dependency(completed, success=True, failure=False)
MinRK
update API after sagedays29...
r3664 self.assertMet(dep)
self.assertReachable(dep)
dep.all=False
self.assertMet(dep)
self.assertReachable(dep)
def test_failure_only(self):
MinRK
organize IPython.parallel into subpackages
r3673 dep = pmod.Dependency(mixed, success=False, failure=True)
MinRK
update API after sagedays29...
r3664 self.assertUnmet(dep)
self.assertUnreachable(dep)
dep.all=False
self.assertMet(dep)
self.assertReachable(dep)
MinRK
organize IPython.parallel into subpackages
r3673 dep = pmod.Dependency(completed, success=False, failure=True)
MinRK
update API after sagedays29...
r3664 self.assertUnmet(dep)
self.assertUnreachable(dep)
dep.all=False
self.assertUnmet(dep)
self.assertUnreachable(dep)