test_genutils.py
156 lines
| 4.5 KiB
| text/x-python
|
PythonLexer
Brian Granger
|
r1617 | # encoding: utf-8 | |
"""Tests for genutils.py""" | |||
__docformat__ = "restructuredtext en" | |||
#----------------------------------------------------------------------------- | |||
# 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 IPython import genutils | |||
Jorgen Stenarson
|
r1746 | ||
import os, sys, IPython | |||
Jorgen Stenarson
|
r1745 | env = os.environ | |
Brian Granger
|
r1617 | ||
Jorgen Stenarson
|
r1746 | from os.path import join, abspath | |
Brian Granger
|
r1617 | ||
Jorgen Stenarson
|
r1745 | def test_get_home_dir_1(): | |
Jorgen Stenarson
|
r1746 | """Testcase to see if we can call get_home_dir without Exceptions.""" | |
Brian Granger
|
r1617 | home_dir = genutils.get_home_dir() | |
Jorgen Stenarson
|
r1746 | ||
Jorgen Stenarson
|
r1745 | def test_get_home_dir_2(): | |
Jorgen Stenarson
|
r1746 | """Testcase for py2exe logic, un-compressed lib | |
""" | |||
sys.frozen=True | |||
oldstuff=IPython.__file__ | |||
#fake filename for IPython.__init__ | |||
IPython.__file__=abspath(join(".", "home_test_dir/Lib/IPython/__init__.py")) | |||
home_dir = genutils.get_home_dir() | |||
assert home_dir==abspath(join(".", "home_test_dir")) | |||
IPython.__file__=oldstuff | |||
del sys.frozen | |||
def test_get_home_dir_3(): | |||
"""Testcase for py2exe logic, compressed lib | |||
""" | |||
sys.frozen=True | |||
oldstuff=IPython.__file__ | |||
#fake filename for IPython.__init__ | |||
IPython.__file__=abspath(join(".", "home_test_dir/Library.zip/IPython/__init__.py")) | |||
home_dir = genutils.get_home_dir() | |||
assert home_dir==abspath(join(".", "home_test_dir")).lower() | |||
del sys.frozen | |||
IPython.__file__=oldstuff | |||
def test_get_home_dir_4(): | |||
"""Testcase $HOME is set, then use its value as home directory.""" | |||
oldstuff=env["HOME"] | |||
env["HOME"]=join(".","home_test_dir") | |||
Jorgen Stenarson
|
r1745 | home_dir = genutils.get_home_dir() | |
assert home_dir==env["HOME"] | |||
Jorgen Stenarson
|
r1746 | env["HOME"]=oldstuff | |
Jorgen Stenarson
|
r1745 | ||
Jorgen Stenarson
|
r1746 | def test_get_home_dir_5(): | |
"""Testcase $HOME is not set, os=='posix'. | |||
This should fail with HomeDirError""" | |||
oldstuff=env["HOME"],os.name | |||
os.name='posix' | |||
del os.environ["HOME"] | |||
try: | |||
genutils.get_home_dir() | |||
assert False | |||
except genutils.HomeDirError: | |||
pass | |||
finally: | |||
env["HOME"],os.name=oldstuff | |||
def test_get_home_dir_6(): | |||
"""Testcase $HOME is not set, os=='nt' | |||
env['HOMEDRIVE'],env['HOMEPATH'] points to path.""" | |||
oldstuff=env["HOME"],os.name,env['HOMEDRIVE'],env['HOMEPATH'] | |||
os.name='nt' | |||
del os.environ["HOME"] | |||
env['HOMEDRIVE'],env['HOMEPATH']=os.path.abspath("."),"home_test_dir" | |||
home_dir = genutils.get_home_dir() | |||
assert home_dir==abspath(join(".", "home_test_dir")) | |||
env["HOME"],os.name,env['HOMEDRIVE'],env['HOMEPATH']=oldstuff | |||
def test_get_home_dir_8(): | |||
"""Testcase $HOME is not set, os=='nt' | |||
env['HOMEDRIVE'],env['HOMEPATH'] do not point to path. | |||
env['USERPROFILE'] points to path | |||
""" | |||
oldstuff=(env["HOME"],os.name,env['HOMEDRIVE'],env['HOMEPATH']) | |||
os.name='nt' | |||
del os.environ["HOME"] | |||
env['HOMEDRIVE'],env['HOMEPATH']=os.path.abspath("."),"DOES NOT EXIST" | |||
env["USERPROFILE"]=abspath(join(".","home_test_dir")) | |||
Jorgen Stenarson
|
r1745 | ||
Jorgen Stenarson
|
r1746 | home_dir = genutils.get_home_dir() | |
assert home_dir==abspath(join(".", "home_test_dir")) | |||
(env["HOME"],os.name,env['HOMEDRIVE'],env['HOMEPATH'])=oldstuff | |||
def test_get_home_dir_9(): | |||
"""Testcase $HOME is not set, os=='nt' | |||
env['HOMEDRIVE'],env['HOMEPATH'], env['USERPROFILE'] missing | |||
""" | |||
import _winreg as wreg | |||
oldstuff = (env["HOME"],os.name,env['HOMEDRIVE'], | |||
env['HOMEPATH'],env["USERPROFILE"], | |||
wreg.OpenKey, wreg.QueryValueEx, | |||
) | |||
os.name='nt' | |||
del env["HOME"],env['HOMEDRIVE'] | |||
#Stub windows registry functions | |||
def OpenKey(x,y): | |||
class key: | |||
def Close(self): | |||
pass | |||
return key() | |||
def QueryValueEx(x,y): | |||
return [abspath(join(".", "home_test_dir"))] | |||
wreg.OpenKey=OpenKey | |||
wreg.QueryValueEx=QueryValueEx | |||
home_dir = genutils.get_home_dir() | |||
assert home_dir==abspath(join(".", "home_test_dir")) | |||
Jorgen Stenarson
|
r1745 | ||
Jorgen Stenarson
|
r1746 | (env["HOME"],os.name,env['HOMEDRIVE'], | |
env['HOMEPATH'],env["USERPROFILE"], | |||
wreg.OpenKey, wreg.QueryValueEx,) = oldstuff | |||
Jorgen Stenarson
|
r1745 | ||
Brian Granger
|
r1617 | def test_get_ipython_dir(): | |
Jorgen Stenarson
|
r1746 | """Testcase to see if we can call get_ipython_dir without Exceptions.""" | |
Brian Granger
|
r1617 | ipdir = genutils.get_ipython_dir() | |
def test_get_security_dir(): | |||
Jorgen Stenarson
|
r1746 | """Testcase to see if we can call get_security_dir without Exceptions.""" | |
Brian Granger
|
r1617 | sdir = genutils.get_security_dir() | |