##// END OF EJS Templates
Mark Python 2.4 as minimum required version.
Mark Python 2.4 as minimum required version.

File last commit:

r1253:9ce3a358
r1434:2b832a8f
Show More
test_config.py
135 lines | 2.5 KiB | text/x-python | PythonLexer
"""
# Test utilities
>>> import os
>>> def dict_as_sorted_list(d):
... for k in d:
... if isinstance(d[k],dict):
... d[k] = dict_as_sorted_list(d[k])
... return sorted(d.items())
>>> def pprint(d,level=0):
... if isinstance(d,dict):
... d = dict_as_sorted_list(d)
... for item,value in d:
... if isinstance(value,list):
... print "%s%s" % (' '*level, item)
... pprint(value,level+2)
... else:
... print "%s%s: %s" % (' '*level, item, value)
# Tests
>>> from IPython.config.api import *
>>> from sample_config import *
>>> s = Sample()
>>> print s.my_float
3.0
>>> s.my_float = 4
>>> print s.my_float
4.0
>>> print type(s.my_float)
<type 'float'>
>>> s.SubSample.SubSubSample.my_int = 5.0
>>> print s.SubSample.SubSubSample.my_int
5
>>> i = ConfigInspector(s)
>>> print i.properties
[('my_choice', 'a'), ('my_float', 4.0)]
>>> print tuple(s for s,v in i.subconfigs)
('MiddleSection', 'SubSample')
>>> print s
my_float = 4.0
<BLANKLINE>
[SubSample]
<BLANKLINE>
[[SubSubSample]]
my_int = 5
<BLANKLINE>
>>> import tempfile
>>> fn = tempfile.mktemp()
>>> f = open(fn,'w')
>>> f.write(str(s))
>>> f.close()
>>> s += fn
>>> from IPython.external.configobj import ConfigObj
>>> c = ConfigObj(fn)
>>> c['SubSample']['subsample_uri'] = 'http://ipython.scipy.org'
>>> s += c
>>> print s
my_float = 4.0
<BLANKLINE>
[SubSample]
subsample_uri = 'http://ipython.scipy.org'
<BLANKLINE>
[[SubSubSample]]
my_int = 5
<BLANKLINE>
>>> pprint(dict_from_config(s,only_modified=False))
MiddleSection
left_alone: '1'
unknown_mod: 'asd'
SubSample
SubSubSample
my_int: 5
subsample_uri: 'http://ipython.scipy.org'
my_choice: 'a'
my_float: 4.0
>>> pprint(dict_from_config(s))
SubSample
SubSubSample
my_int: 5
subsample_uri: 'http://ipython.scipy.org'
my_float: 4.0
Test roundtripping:
>>> fn = tempfile.mktemp()
>>> f = open(fn, 'w')
>>> f.write('''
... [MiddleSection]
... # some comment here
... left_alone = 'c'
... ''')
>>> f.close()
>>> s += fn
>>> pprint(dict_from_config(s))
MiddleSection
left_alone: 'c'
SubSample
SubSubSample
my_int: 5
subsample_uri: 'http://ipython.scipy.org'
my_float: 4.0
>>> write(s, fn)
>>> f = file(fn,'r')
>>> ConfigInspector(s).reset()
>>> pprint(dict_from_config(s))
>>> s += fn
>>> os.unlink(fn)
>>> pprint(dict_from_config(s))
MiddleSection
left_alone: 'c'
SubSample
SubSubSample
my_int: 5
subsample_uri: 'http://ipython.scipy.org'
my_float: 4.0
"""