1 #!/usr/bin/env python2.3
4 from os
.path
import dirname
, abspath
, join
5 rox_lib
= dirname(dirname(dirname(abspath(sys
.argv
[0]))))
6 sys
.path
.insert(0, join(rox_lib
, 'python'))
8 os
.environ
['CHOICESPATH'] = '/tmp/choices:/tmp/choices2'
9 os
.environ
['XDG_CONFIG_HOME'] = '/tmp/config'
11 from rox
import basedir
, choices
, options
13 class TestOptions(unittest
.TestCase
):
15 for d
in ['/tmp/choices', '/tmp/choices2', '/tmp/config']:
19 def testChoices(self
):
20 group
= options
.OptionGroup('MyProg', 'Options')
21 o1
= options
.Option('colour', 'red', group
)
22 assert not os
.path
.isfile('/tmp/choices/MyProg/Options')
25 assert os
.path
.isfile('/tmp/choices/MyProg/Options')
27 g2
= options
.OptionGroup('MyProg', 'Options')
28 o1
= options
.Option('colour', 'green', g2
)
30 self
.assertEquals('red', o1
.value
)
33 group
= options
.OptionGroup('MyProg', 'Options', 'site')
34 o1
= options
.Option('colour', 'red', group
)
35 assert not os
.path
.isfile('/tmp/config/site/MyProg/Options')
38 assert os
.path
.isfile('/tmp/config/site/MyProg/Options')
40 g2
= options
.OptionGroup('MyProg', 'Options', 'site')
41 o1
= options
.Option('colour', 'green', g2
)
43 self
.assertEquals('red', o1
.value
)
49 group
= options
.OptionGroup('MyProg', 'Options', 'site')
50 o1
= options
.Option('colour', 'green', group
)
51 group
.add_notify(notify
)
52 self
.assertEquals(0, self
.c
)
54 self
.assertEquals(1, self
.c
)
57 options
.Option('size', 'small', group
)
58 raise Exception('Too late!')
59 except AssertionError:
62 group
.remove_notify(notify
)
64 self
.assertEquals(1, self
.c
)
66 assert not o1
.has_changed
70 assert not o1
.has_changed
73 suite
= unittest
.makeSuite(TestOptions
)
74 if __name__
== '__main__':