Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/toolkit/options.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/toolkit/options.py')
-rwxr-xr-xtests/units/toolkit/options.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/units/toolkit/options.py b/tests/units/toolkit/options.py
index 804240f..385c4da 100755
--- a/tests/units/toolkit/options.py
+++ b/tests/units/toolkit/options.py
@@ -25,6 +25,55 @@ class OptionsTest(tests.Test):
self.assertEqual('22', p2.value)
self.assertEqual('33', p3.value)
+ def test_SaveChangedOptions(self):
+ option = Option(name='option')
+ Option.seek('section', [option])
+
+ self.touch(('config', [
+ '[section]',
+ 'option = 1',
+ ]))
+ Option.load(['config'])
+ self.assertEqual('1', option.value)
+
+ option.value = '2'
+ Option.save()
+
+ option.value = ''
+ Option.load(['config'])
+ self.assertEqual('2', option.value)
+
+ def test_PreserveNonSeekConfigOnSave(self):
+ option = Option(name='option')
+ Option.seek('section', [option])
+
+ self.touch(('config', [
+ '[foo]',
+ 'o1 = 1 # foo',
+ '[section]',
+ 'option = 1',
+ '[bar]',
+ 'o2 = 2 # bar',
+ ]))
+ Option.load(['config'])
+ self.assertEqual('1', option.value)
+
+ option.value = '2'
+ Option.save()
+
+ self.assertEqual('\n'.join([
+ '[foo]',
+ 'o1 = 1 # foo',
+ '',
+ '[section]',
+ 'option = 2',
+ '',
+ '[bar]',
+ 'o2 = 2 # bar',
+ '\n',
+ ]),
+ file('config').read())
+
if __name__ == '__main__':
tests.main()