##// END OF EJS Templates
Fixed formatting errors in rmagic R() docstring...
Fixed formatting errors in rmagic R() docstring Things now mostly render correctly in both terminal and HTML versions of the docs. Note that there are still numerous warnings regarding these magics. At least some of them appear to be from the debauched manner in which the docs are being generated from the @magic_arguments. In addition to the warnings you get when building the docs, if you look at the HTML source for, e.g., rmagic, you'll see that the options are formatted in numerous ways. I get a "--" converted to an en-dash (–) for example. In case you're looking at this in a system that messes up the formatting of the HTML code-point above, the en-dash is 8211.

File last commit:

r9966:22895175
r12536:ddcf4b0f
Show More
test_dependency.py
136 lines | 4.0 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():
MinRK
expedite IPython.parallel tests...
r6162 add_engines(1, total=True)
MinRK
update API after sagedays29...
r3664
MinRK
organize IPython.parallel into subpackages
r3673 @pmod.require('time')
MinRK
update API after sagedays29...
r3664 def wait(n):
time.sleep(n)
return n
MinRK
test new @require behavior
r9966 @pmod.interactive
def func(x):
return x*x
MinRK
update API after sagedays29...
r3664 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
Bradley M. Froehle
s/assertEquals/assertEqual/
r7874 self.assertEqual(encode(dict(a=5)), 'a=5')
MinRK
update API after sagedays29...
r3664
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)
MinRK
test new @require behavior
r9966
def test_require_function(self):
@pmod.interactive
def bar(a):
return func(a)
@pmod.require(func)
@pmod.interactive
def bar2(a):
return func(a)
self.client[:].clear()
self.assertRaisesRemote(NameError, self.view.apply_sync, bar, 5)
ar = self.view.apply_async(bar2, 5)
self.assertEqual(ar.get(5), func(5))
def test_require_object(self):
@pmod.require(foo=func)
@pmod.interactive
def bar(a):
return foo(a)
ar = self.view.apply_async(bar, 5)
self.assertEqual(ar.get(5), func(5))