##// END OF EJS Templates
Fix: openssh_tunnel did not parse port in `server`...
Fix: openssh_tunnel did not parse port in `server` Despite what the docstring of openssh_tunnel mentioned, it did not parse username in port in the `server` argument. This patch fixes the problem so that ipython client can connect to the server over port-forwarded ssh connection. For example, you can connect the client by the following code now:: c = Client('/path/to/ipcontroller-client.json', sshserver='me@localhost:1234')

File last commit:

r6426:074cf5cc
r6429:bcfab0f0
Show More
test_asyncresult.py
125 lines | 4.5 KiB | text/x-python | PythonLexer
MinRK
update recently changed modules with Authors in docstring
r4018 """Tests for asyncresult.py
Authors:
* Min RK
"""
MinRK
update API after sagedays29...
r3664
#-------------------------------------------------------------------------------
# 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
#-------------------------------------------------------------------------------
MinRK
move IPython.zmq.parallel to IPython.parallel
r3666 from IPython.parallel.error import TimeoutError
MinRK
update API after sagedays29...
r3664
MinRK
fix AsyncResult.abort...
r6426 from IPython.parallel import error
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(2, total=True)
MinRK
update API after sagedays29...
r3664
def wait(n):
import time
time.sleep(n)
return n
class AsyncResultTest(ClusterTestCase):
MinRK
fix AsyncResult.abort...
r6426 def test_single_result_view(self):
"""various one-target views get the right value for single_result"""
MinRK
update API after sagedays29...
r3664 eid = self.client.ids[-1]
ar = self.client[eid].apply_async(lambda : 42)
self.assertEquals(ar.get(), 42)
ar = self.client[[eid]].apply_async(lambda : 42)
self.assertEquals(ar.get(), [42])
ar = self.client[-1:].apply_async(lambda : 42)
self.assertEquals(ar.get(), [42])
def test_get_after_done(self):
ar = self.client[-1].apply_async(lambda : 42)
ar.wait()
self.assertTrue(ar.ready())
self.assertEquals(ar.get(), 42)
self.assertEquals(ar.get(), 42)
def test_get_before_done(self):
ar = self.client[-1].apply_async(wait, 0.1)
self.assertRaises(TimeoutError, ar.get, 0)
ar.wait(0)
self.assertFalse(ar.ready())
self.assertEquals(ar.get(), 0.1)
def test_get_after_error(self):
ar = self.client[-1].apply_async(lambda : 1/0)
MinRK
update parallel code for py3k...
r4155 ar.wait(10)
MinRK
update API after sagedays29...
r3664 self.assertRaisesRemote(ZeroDivisionError, ar.get)
self.assertRaisesRemote(ZeroDivisionError, ar.get)
self.assertRaisesRemote(ZeroDivisionError, ar.get_dict)
def test_get_dict(self):
n = len(self.client)
ar = self.client[:].apply_async(lambda : 5)
self.assertEquals(ar.get(), [5]*n)
d = ar.get_dict()
self.assertEquals(sorted(d.keys()), sorted(self.client.ids))
for eid,r in d.iteritems():
self.assertEquals(r, 5)
MinRK
AsyncResult.__getattr__ shouldn't raise TimeoutError...
r5222
def test_list_amr(self):
ar = self.client.load_balanced_view().map_async(wait, [0.1]*5)
rlist = list(ar)
def test_getattr(self):
ar = self.client[:].apply_async(wait, 0.5)
self.assertRaises(AttributeError, lambda : ar._foo)
self.assertRaises(AttributeError, lambda : ar.__length_hint__())
self.assertRaises(AttributeError, lambda : ar.foo)
self.assertRaises(AttributeError, lambda : ar.engine_id)
self.assertFalse(hasattr(ar, '__length_hint__'))
self.assertFalse(hasattr(ar, 'foo'))
self.assertFalse(hasattr(ar, 'engine_id'))
ar.get(5)
self.assertRaises(AttributeError, lambda : ar._foo)
self.assertRaises(AttributeError, lambda : ar.__length_hint__())
self.assertRaises(AttributeError, lambda : ar.foo)
self.assertTrue(isinstance(ar.engine_id, list))
self.assertEquals(ar.engine_id, ar['engine_id'])
self.assertFalse(hasattr(ar, '__length_hint__'))
self.assertFalse(hasattr(ar, 'foo'))
self.assertTrue(hasattr(ar, 'engine_id'))
def test_getitem(self):
ar = self.client[:].apply_async(wait, 0.5)
self.assertRaises(TimeoutError, lambda : ar['foo'])
self.assertRaises(TimeoutError, lambda : ar['engine_id'])
ar.get(5)
self.assertRaises(KeyError, lambda : ar['foo'])
self.assertTrue(isinstance(ar['engine_id'], list))
self.assertEquals(ar.engine_id, ar['engine_id'])
def test_single_result(self):
ar = self.client[-1].apply_async(wait, 0.5)
self.assertRaises(TimeoutError, lambda : ar['foo'])
self.assertRaises(TimeoutError, lambda : ar['engine_id'])
self.assertTrue(ar.get(5) == 0.5)
self.assertTrue(isinstance(ar['engine_id'], int))
self.assertTrue(isinstance(ar.engine_id, int))
self.assertEquals(ar.engine_id, ar['engine_id'])
MinRK
fix AsyncResult.abort...
r6426
def test_abort(self):
e = self.client[-1]
ar = e.execute('import time; time.sleep(1)', block=False)
ar2 = e.apply_async(lambda : 2)
ar2.abort()
self.assertRaises(error.TaskAborted, ar2.get)
ar.get()
MinRK
AsyncResult.__getattr__ shouldn't raise TimeoutError...
r5222
MinRK
update API after sagedays29...
r3664