##// END OF EJS Templates
Removing simple test cases for get_home_dir and get_ipython_dir
Removing simple test cases for get_home_dir and get_ipython_dir

File last commit:

r1800:15885e50
r1800:15885e50
Show More
test_genutils.py
231 lines | 6.8 KiB | text/x-python | PythonLexer
Brian Granger
Added tests for the new get_ipython_dir and get_security_dir ...
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
Changed tests to use decorator to setup, teardown environment
r1750 from IPython.testing.decorators import skipif
from nose import with_setup
Jorgen Stenarson
added test for genutils.popkey
r1751 from nose.tools import raises
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 import os, sys, IPython
Jorgen Stenarson
Fix for py2exe when using uncompressed lib/
r1745 env = os.environ
Brian Granger
Added tests for the new get_ipython_dir and get_security_dir ...
r1617
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 from os.path import join, abspath, split
Brian Granger
Added tests for the new get_ipython_dir and get_security_dir ...
r1617
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 try:
import _winreg as wreg
except ImportError:
Jorgen Stenarson
Fake _winreg in tests for non windows platforms
r1793 #Fake _winreg module on none windows platforms
import new
Jorgen Stenarson
Some reformatting of code
r1796 sys.modules["_winreg"] = new.module("_winreg")
Jorgen Stenarson
Fake _winreg in tests for non windows platforms
r1793 import _winreg as wreg
#Add entries that needs to be stubbed by the testing code
(wreg.OpenKey, wreg.QueryValueEx,) = (None, None)
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 test_file_path = split(abspath(__file__))[0]
Jorgen Stenarson
Removed skip_on_win32 should dependencies should be stubbed
r1795 #skip_if_not_win32 = skipif(sys.platform!='win32',"This test only runs under Windows")
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750
def setup_environment():
global oldstuff, platformstuff
oldstuff = (env.copy(), os.name, genutils.get_home_dir, IPython.__file__,)
Jorgen Stenarson
Some reformatting of code
r1796 if os.name == 'nt':
platformstuff = (wreg.OpenKey, wreg.QueryValueEx,)
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750
if 'IPYTHONDIR' in env:
del env['IPYTHONDIR']
def teardown_environment():
(oldenv, os.name, genutils.get_home_dir, IPython.__file__,) = oldstuff
for key in env.keys():
if key not in oldenv:
del env[key]
env.update(oldenv)
if hasattr(sys, 'frozen'):
del sys.frozen
Jorgen Stenarson
Some reformatting of code
r1796 if os.name == 'nt':
(wreg.OpenKey, wreg.QueryValueEx,) = platformstuff
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750
Jorgen Stenarson
Some reformatting of code
r1796 with_enivronment = with_setup(setup_environment, teardown_environment)
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750
@with_enivronment
Jorgen Stenarson
Fix for py2exe when using uncompressed lib/
r1745 def test_get_home_dir_1():
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 """Testcase for py2exe logic, un-compressed lib
"""
Jorgen Stenarson
Some reformatting of code
r1796 sys.frozen = True
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
#fake filename for IPython.__init__
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 IPython.__file__ = abspath(join(test_file_path, "home_test_dir/Lib/IPython/__init__.py"))
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
home_dir = genutils.get_home_dir()
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 assert home_dir == abspath(join(test_file_path, "home_test_dir"))
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_home_dir_2():
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 """Testcase for py2exe logic, compressed lib
"""
sys.frozen=True
#fake filename for IPython.__init__
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 IPython.__file__ = abspath(join(test_file_path, "home_test_dir/Library.zip/IPython/__init__.py"))
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
home_dir = genutils.get_home_dir()
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 assert home_dir == abspath(join(test_file_path, "home_test_dir")).lower()
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_home_dir_3():
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 """Testcase $HOME is set, then use its value as home directory."""
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 env["HOME"] = join(test_file_path,"home_test_dir")
Jorgen Stenarson
Fix for py2exe when using uncompressed lib/
r1745 home_dir = genutils.get_home_dir()
Jorgen Stenarson
Some reformatting of code
r1796 assert home_dir == env["HOME"]
Jorgen Stenarson
Fix for py2exe when using uncompressed lib/
r1745
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_home_dir_4():
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 """Testcase $HOME is not set, os=='posix'.
This should fail with HomeDirError"""
Jorgen Stenarson
Some reformatting of code
r1796 os.name = 'posix'
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 del os.environ["HOME"]
try:
genutils.get_home_dir()
assert False
except genutils.HomeDirError:
pass
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_home_dir_5():
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 """Testcase $HOME is not set, os=='nt'
env['HOMEDRIVE'],env['HOMEPATH'] points to path."""
Jorgen Stenarson
Some reformatting of code
r1796 os.name = 'nt'
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 del os.environ["HOME"]
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 env['HOMEDRIVE'],env['HOMEPATH'] = os.path.abspath(test_file_path),"home_test_dir"
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
home_dir = genutils.get_home_dir()
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 assert home_dir == abspath(join(test_file_path, "home_test_dir"))
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_home_dir_6():
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 """Testcase $HOME is not set, os=='nt'
env['HOMEDRIVE'],env['HOMEPATH'] do not point to path.
env['USERPROFILE'] points to path
"""
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750
Jorgen Stenarson
Some reformatting of code
r1796 os.name = 'nt'
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 del os.environ["HOME"]
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 env['HOMEDRIVE'],env['HOMEPATH'] = os.path.abspath(test_file_path),"DOES NOT EXIST"
env["USERPROFILE"] = abspath(join(test_file_path,"home_test_dir"))
Jorgen Stenarson
Fix for py2exe when using uncompressed lib/
r1745
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 home_dir = genutils.get_home_dir()
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 assert home_dir == abspath(join(test_file_path, "home_test_dir"))
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 # Should we stub wreg fully so we can run the test on all platforms?
Jorgen Stenarson
Removed skip_on_win32 should dependencies should be stubbed
r1795 #@skip_if_not_win32
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_home_dir_7():
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 """Testcase $HOME is not set, os=='nt'
env['HOMEDRIVE'],env['HOMEPATH'], env['USERPROFILE'] missing
"""
Jorgen Stenarson
Some reformatting of code
r1796 os.name = 'nt'
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 del env["HOME"],env['HOMEDRIVE']
#Stub windows registry functions
Jorgen Stenarson
Some reformatting of code
r1796 def OpenKey(x, y):
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746 class key:
def Close(self):
pass
return key()
Jorgen Stenarson
Some reformatting of code
r1796 def QueryValueEx(x, y):
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 return [abspath(join(test_file_path, "home_test_dir"))]
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
Jorgen Stenarson
Some reformatting of code
r1796 wreg.OpenKey = OpenKey
wreg.QueryValueEx = QueryValueEx
Jorgen Stenarson
Added tests test_get_home_dir_3-test_get_home_dir_9...
r1746
home_dir = genutils.get_home_dir()
Jorgen Stenarson
Fixed bug on tests so they work when iptest is not called from within IPython/tests
r1799 assert home_dir == abspath(join(test_file_path, "home_test_dir"))
Jorgen Stenarson
Fix for py2exe when using uncompressed lib/
r1745
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 #
# Tests for get_ipython_dir
#
@with_enivronment
Jorgen Stenarson
Changed get_ipython_dir to return unicode otherwise the ...
r1749 def test_get_ipython_dir_1():
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 """2 Testcase to see if we can call get_ipython_dir without Exceptions."""
Jorgen Stenarson
Some reformatting of code
r1796 env['IPYTHONDIR'] = "someplace/.ipython"
Jorgen Stenarson
Changed get_ipython_dir to return unicode otherwise the ...
r1749 ipdir = genutils.get_ipython_dir()
assert ipdir == os.path.abspath("someplace/.ipython")
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_ipython_dir_2():
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 """3 Testcase to see if we can call get_ipython_dir without Exceptions."""
genutils.get_home_dir=lambda : "someplace"
Jorgen Stenarson
Some reformatting of code
r1796 os.name = "posix"
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 ipdir = genutils.get_ipython_dir()
assert ipdir == os.path.abspath(os.path.join("someplace", ".ipython"))
Jorgen Stenarson
Changed get_ipython_dir to return unicode otherwise the ...
r1749
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
Jorgen Stenarson
Removing simple test cases for get_home_dir and get_ipython_dir
r1800 def test_get_ipython_dir_3():
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 """4 Testcase to see if we can call get_ipython_dir without Exceptions."""
Jorgen Stenarson
Some reformatting of code
r1796 genutils.get_home_dir = lambda : "someplace"
os.name = "nt"
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 ipdir = genutils.get_ipython_dir()
assert ipdir == os.path.abspath(os.path.join("someplace", "_ipython"))
Jorgen Stenarson
Changed get_ipython_dir to return unicode otherwise the ...
r1749
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 #
# Tests for get_security_dir
#
Jorgen Stenarson
Changed get_ipython_dir to return unicode otherwise the ...
r1749
Jorgen Stenarson
Changed tests to use decorator to setup, teardown environment
r1750 @with_enivronment
def test_get_security_dir():
"""Testcase to see if we can call get_security_dir without Exceptions."""
sdir = genutils.get_security_dir()
Jorgen Stenarson
added test for genutils.popkey
r1751
Jorgen Stenarson
Fake _winreg in tests for non windows platforms
r1793 #
# Tests for popkey
#
Jorgen Stenarson
added test for genutils.popkey
r1751
def test_popkey_1():
Jorgen Stenarson
Some reformatting of code
r1796 dct = dict(a=1, b=2, c=3)
assert genutils.popkey(dct, "a") == 1
assert dct == dict(b=2, c=3)
assert genutils.popkey(dct, "b") == 2
assert dct == dict(c=3)
assert genutils.popkey(dct, "c") == 3
assert dct == dict()
Jorgen Stenarson
added test for genutils.popkey
r1751
@raises(KeyError)
def test_popkey_2():
Jorgen Stenarson
Some reformatting of code
r1796 dct = dict(a=1, b=2, c=3)
Jorgen Stenarson
added test for genutils.popkey
r1751 genutils.popkey(dct, "d")
def test_popkey_3():
Jorgen Stenarson
Some reformatting of code
r1796 dct = dict(a=1, b=2, c=3)
Jorgen Stenarson
added test for genutils.popkey
r1751 assert genutils.popkey(dct, "A", 13)==13
Jorgen Stenarson
Some reformatting of code
r1796 assert dct == dict(a=1, b=2, c=3)
Jorgen Stenarson
added test for genutils.popkey
r1751 assert genutils.popkey(dct, "B", 14)==14
Jorgen Stenarson
Some reformatting of code
r1796 assert dct == dict(a=1, b=2, c=3)
Jorgen Stenarson
added test for genutils.popkey
r1751 assert genutils.popkey(dct, "C", 15)==15
Jorgen Stenarson
Some reformatting of code
r1796 assert dct == dict(a=1, b=2, c=3)
Jorgen Stenarson
added test for genutils.popkey
r1751 assert genutils.popkey(dct, "a")==1
Jorgen Stenarson
Some reformatting of code
r1796 assert dct == dict(b=2, c=3)
Jorgen Stenarson
added test for genutils.popkey
r1751 assert genutils.popkey(dct, "b")==2
Jorgen Stenarson
Some reformatting of code
r1796 assert dct == dict(c=3)
Jorgen Stenarson
added test for genutils.popkey
r1751 assert genutils.popkey(dct, "c")==3
Jorgen Stenarson
Some reformatting of code
r1796 assert dct == dict()