# encoding: utf-8 """Tests for IPython.utils.path.py""" #----------------------------------------------------------------------------- # Copyright (C) 2008 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 #----------------------------------------------------------------------------- from __future__ import with_statement import os import shutil import sys import tempfile import StringIO from os.path import join, abspath, split import nose.tools as nt from nose import with_setup import IPython from IPython.testing import decorators as dec from IPython.testing.decorators import skip_if_not_win32, skip_win32 from IPython.testing.tools import make_tempfile from IPython.utils import path, io from IPython.utils import py3compat import IPython.utils.module_paths as mp env = os.environ TEST_FILE_PATH = split(abspath(__file__))[0] TMP_TEST_DIR = tempfile.mkdtemp() # # Setup/teardown functions/decorators # old_syspath = sys.path sys.path = [TMP_TEST_DIR] def make_empty_file(fname): f = open(fname, 'w') f.close() def setup(): """Setup testenvironment for the module: """ # Do not mask exceptions here. In particular, catching WindowsError is a # problem because that exception is only defined on Windows... os.makedirs(join(TMP_TEST_DIR, "xmod")) os.makedirs(join(TMP_TEST_DIR, "nomod")) make_empty_file(join(TMP_TEST_DIR, "xmod/__init__.py")) make_empty_file(join(TMP_TEST_DIR, "xmod/sub.py")) make_empty_file(join(TMP_TEST_DIR, "pack.py")) make_empty_file(join(TMP_TEST_DIR, "packpyc.pyc")) def teardown(): """Teardown testenvironment for the module: - Remove tempdir """ # Note: we remove the parent test dir, which is the root of all test # subdirs we may have created. Use shutil instead of os.removedirs, so # that non-empty directories are all recursively removed. shutil.rmtree(TMP_TEST_DIR) def test_get_init_1(): """See if get_init can find __init__.py in this testdir""" with make_tempfile(join(TMP_TEST_DIR, "__init__.py")): assert mp.get_init(TMP_TEST_DIR) def test_get_init_2(): """See if get_init can find __init__.pyw in this testdir""" with make_tempfile(join(TMP_TEST_DIR, "__init__.pyw")): assert mp.get_init(TMP_TEST_DIR) def test_get_init_3(): """get_init can't find __init__.pyc in this testdir""" with make_tempfile(join(TMP_TEST_DIR, "__init__.pyc")): assert mp.get_init(TMP_TEST_DIR) is None def test_get_init_3(): """get_init can't find __init__ in empty testdir""" assert mp.get_init(TMP_TEST_DIR) is None def test_find_mod_1(): modpath = join(TMP_TEST_DIR, "xmod", "__init__.py") assert mp.find_mod("xmod") == modpath def test_find_mod_2(): modpath = join(TMP_TEST_DIR, "xmod", "__init__.py") assert mp.find_mod("xmod") == modpath def test_find_mod_3(): modpath = join(TMP_TEST_DIR, "xmod", "sub.py") assert mp.find_mod("xmod.sub") == modpath def test_find_mod_4(): modpath = join(TMP_TEST_DIR, "pack.py") assert mp.find_mod("pack") == modpath def test_find_mod_5(): assert mp.find_mod("packpyc") is None def test_find_module_1(): modpath = join(TMP_TEST_DIR, "xmod") assert mp.find_module("xmod") == modpath def test_find_module_2(): """Testing sys.path that is empty""" assert mp.find_module("xmod", []) is None def test_find_module_3(): """Testing sys.path that is empty""" assert mp.find_module(None, None) is None def test_find_module_4(): """Testing sys.path that is empty""" assert mp.find_module(None) is None def test_find_module_5(): assert mp.find_module("xmod.nopack") is None