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.py42
1 files changed, 39 insertions, 3 deletions
diff --git a/tests/units/toolkit/options.py b/tests/units/toolkit/options.py
index 385c4da..1c5afa5 100755
--- a/tests/units/toolkit/options.py
+++ b/tests/units/toolkit/options.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
# sugar-lint: disable
+from ConfigParser import ConfigParser
+
from __init__ import tests
from sugar_network.toolkit import Option
@@ -33,14 +35,14 @@ class OptionsTest(tests.Test):
'[section]',
'option = 1',
]))
- Option.load(['config'])
+ Option.load(['./config'])
self.assertEqual('1', option.value)
option.value = '2'
Option.save()
option.value = ''
- Option.load(['config'])
+ Option.load(['./config'])
self.assertEqual('2', option.value)
def test_PreserveNonSeekConfigOnSave(self):
@@ -55,7 +57,7 @@ class OptionsTest(tests.Test):
'[bar]',
'o2 = 2 # bar',
]))
- Option.load(['config'])
+ Option.load(['./config'])
self.assertEqual('1', option.value)
option.value = '2'
@@ -74,6 +76,40 @@ class OptionsTest(tests.Test):
]),
file('config').read())
+ def test_SaveOnlyChangedOptions(self):
+ option1 = Option(name='option1', default='1')
+ option2 = Option(name='option2', default='2')
+ option3 = Option(name='option3', default='3')
+ Option.seek('section', [option1, option2, option3])
+ Option.load(['./config'])
+
+ self.assertEqual('1', option1.value)
+ self.assertEqual('2', option2.value)
+ self.assertEqual('3', option3.value)
+
+ Option.save()
+ parser = ConfigParser()
+ parser.read('config')
+ assert not parser.has_option('section', 'option1')
+ assert not parser.has_option('section', 'option2')
+ assert not parser.has_option('section', 'option3')
+
+ option1.value = '1_'
+ Option.save()
+ parser = ConfigParser()
+ parser.read('config')
+ self.assertEqual('1_', parser.get('section', 'option1'))
+ assert not parser.has_option('section', 'option2')
+ assert not parser.has_option('section', 'option3')
+
+ option2.value = '2_'
+ Option.save()
+ parser = ConfigParser()
+ parser.read('config')
+ self.assertEqual('1_', parser.get('section', 'option1'))
+ self.assertEqual('2_', parser.get('section', 'option2'))
+ assert not parser.has_option('section', 'option3')
+
if __name__ == '__main__':
tests.main()