##// END OF EJS Templates
update Session object per review...
update Session object per review docstrings fleshed out, minor code cleanup.

File last commit:

r3673:b9f54806
r4017:74596588
Show More
test_dependency.py
101 lines | 3.3 KiB | text/x-python | PythonLexer
MinRK
update API after sagedays29...
r3664 """Tests for dependency.py"""
__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)