|
|
# encoding: utf-8
|
|
|
"""
|
|
|
Tests for platutils.py
|
|
|
"""
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Copyright (C) 2008-2009 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 sys
|
|
|
|
|
|
import nose.tools as nt
|
|
|
|
|
|
from IPython.utils.process import find_cmd, FindCmdError, arg_split
|
|
|
from IPython.testing import decorators as dec
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Tests
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
def test_find_cmd_python():
|
|
|
"""Make sure we find sys.exectable for python."""
|
|
|
nt.assert_equals(find_cmd('python'), sys.executable)
|
|
|
|
|
|
|
|
|
@dec.skip_win32
|
|
|
def test_find_cmd_ls():
|
|
|
"""Make sure we can find the full path to ls."""
|
|
|
path = find_cmd('ls')
|
|
|
nt.assert_true(path.endswith('ls'))
|
|
|
|
|
|
|
|
|
def has_pywin32():
|
|
|
try:
|
|
|
import win32api
|
|
|
except ImportError:
|
|
|
return False
|
|
|
return True
|
|
|
|
|
|
|
|
|
@dec.onlyif(has_pywin32, "This test requires win32api to run")
|
|
|
def test_find_cmd_pythonw():
|
|
|
"""Try to find pythonw on Windows."""
|
|
|
path = find_cmd('pythonw')
|
|
|
nt.assert_true(path.endswith('pythonw.exe'))
|
|
|
|
|
|
|
|
|
@dec.onlyif(lambda : sys.platform != 'win32' or has_pywin32(),
|
|
|
"This test runs on posix or in win32 with win32api installed")
|
|
|
def test_find_cmd_fail():
|
|
|
"""Make sure that FindCmdError is raised if we can't find the cmd."""
|
|
|
nt.assert_raises(FindCmdError,find_cmd,'asdfasdf')
|
|
|
|
|
|
|
|
|
def test_arg_split():
|
|
|
"""Ensure that argument lines are correctly split like in a shell."""
|
|
|
tests = [['hi', ['hi']],
|
|
|
[u'hi', [u'hi']],
|
|
|
]
|
|
|
for argstr, argv in tests:
|
|
|
nt.assert_equal(arg_split(argstr), argv)
|
|
|
|