##// END OF EJS Templates
fix symlinked /home issue for FreeBSD...
fix symlinked /home issue for FreeBSD this is a one-line fix for ipython's pushd and friends on systems which symlink /home directories to /usr/home. Here's the error I get on FreeBSD 9.0 without this PR: ====================================================================== FAIL: Test various directory handling operations. ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg/nose/case.py", line 197, in runTest self.test(*self.arg) File "/usr/home/pi/code/ipython/IPython/core/tests/test_magic.py", line 280, in test_dirops nt.assert_equal(curpath(), startdir) AssertionError: u'/usr/home/pi/.ipython' != u'/usr/home/pi/code/ipython' - /usr/home/pi/.ipython ? ^ + /usr/home/pi/code/ipython ? ^^^^^ """Fail immediately, with the given message.""" >> raise self.failureException(u"u'/usr/home/pi/.ipython' != u'/usr/home/pi/code/ipython'\n- /usr/home/pi/.ipython\n? ^\n+ /usr/home/pi/code/ipython\n? ^^^^^\n") -------------------- >> begin captured stdout << --------------------- /usr/home/pi/.ipython /usr/home/pi/code/ipython /usr/home/pi/.ipython [Errno 2] No such file or directory: '/usr~/code/ipython' /usr/home/pi/.ipython popd -> /usr~/code/ipython --------------------- >> end captured stdout << ---------------------- The reason for the above is this: In [1]: pwd Out[1]: u'/usr/home/pi' In [2]: !pwd /home/pi In [3]: pushd code /usr/home/pi/code Out[3]: [u'/usr~'] with this commit: In [1]: pushd Out[1]: [u'~']

File last commit:

r4018:9950e71b
r6112:542170a5
Show More
test_dependency.py
106 lines | 3.3 KiB | text/x-python | PythonLexer
"""Tests for dependency.py
Authors:
* Min RK
"""
__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
import IPython.parallel as pmod
from IPython.parallel.util import interactive
from IPython.parallel.tests import add_engines
from .clienttest import ClusterTestCase
def setup():
add_engines(1)
@pmod.require('time')
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
@pmod.require('urllib')
@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):
dep = pmod.Dependency(mixed, success=True, failure=False)
self.assertUnmet(dep)
self.assertUnreachable(dep)
dep.all=False
self.assertMet(dep)
self.assertReachable(dep)
dep = pmod.Dependency(completed, success=True, failure=False)
self.assertMet(dep)
self.assertReachable(dep)
dep.all=False
self.assertMet(dep)
self.assertReachable(dep)
def test_failure_only(self):
dep = pmod.Dependency(mixed, success=False, failure=True)
self.assertUnmet(dep)
self.assertUnreachable(dep)
dep.all=False
self.assertMet(dep)
self.assertReachable(dep)
dep = pmod.Dependency(completed, success=False, failure=True)
self.assertUnmet(dep)
self.assertUnreachable(dep)
dep.all=False
self.assertUnmet(dep)
self.assertUnreachable(dep)