diff options
Diffstat (limited to 'tests/units/toolkit/options.py')
-rwxr-xr-x | tests/units/toolkit/options.py | 42 |
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() |