| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -960,7 +960,10 @@ def __setitem__(self, key, value): | |||
| 960 | 960 | ||
| 961 | 961 | # XXX this is not atomic if read_dict fails at any point. Then again, | |
| 962 | 962 | # no update method in configparser is atomic in this implementation. | |
| 963 | - self.remove_section(key) | ||
| 963 | + if key == self.default_section: | ||
| 964 | + self._defaults.clear() | ||
| 965 | + else: | ||
| 966 | + self.remove_section(key) | ||
| 964 | 967 | self.read_dict({key: value}) | |
| 965 | 968 | ||
| 966 | 969 | def __delitem__(self, key): | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -797,6 +797,34 @@ def test_clear(self): | |||
| 797 | 797 | self.assertEqual(set(cf.sections()), set()) | |
| 798 | 798 | self.assertEqual(set(cf[self.default_section].keys()), {'foo'}) | |
| 799 | 799 | ||
| 800 | + def test_setitem(self): | ||
| 801 | + cf = self.fromstring(""" | ||
| 802 | + [section1] | ||
| 803 | + name1 {0[0]} value1 | ||
| 804 | + [section2] | ||
| 805 | + name2 {0[0]} value2 | ||
| 806 | + [section3] | ||
| 807 | + name3 {0[0]} value3 | ||
| 808 | + """.format(self.delimiters), defaults={"nameD": "valueD"}) | ||
| 809 | + self.assertEqual(set(cf['section1'].keys()), {'name1', 'named'}) | ||
| 810 | + self.assertEqual(set(cf['section2'].keys()), {'name2', 'named'}) | ||
| 811 | + self.assertEqual(set(cf['section3'].keys()), {'name3', 'named'}) | ||
| 812 | + self.assertEqual(cf['section1']['name1'], 'value1') | ||
| 813 | + self.assertEqual(cf['section2']['name2'], 'value2') | ||
| 814 | + self.assertEqual(cf['section3']['name3'], 'value3') | ||
| 815 | + cf['section2'] = {'name22': 'value22'} | ||
| 816 | + self.assertEqual(set(cf['section2'].keys()), {'name22', 'named'}) | ||
| 817 | + self.assertEqual(cf['section2']['name22'], 'value22') | ||
| 818 | + self.assertNotIn('name2', cf['section2']) | ||
| 819 | + cf['section3'] = {} | ||
| 820 | + self.assertEqual(set(cf['section3'].keys()), {'named'}) | ||
| 821 | + self.assertNotIn('name3', cf['section3']) | ||
| 822 | + cf[self.default_section] = {} | ||
| 823 | + self.assertEqual(set(cf[self.default_section].keys()), set()) | ||
| 824 | + self.assertEqual(set(cf['section1'].keys()), {'name1'}) | ||
| 825 | + self.assertEqual(set(cf['section2'].keys()), {'name22'}) | ||
| 826 | + self.assertEqual(set(cf['section3'].keys()), set()) | ||
| 827 | + | ||
| 800 | 828 | ||
| 801 | 829 | class StrictTestCase(BasicTestCase): | |
| 802 | 830 | config_class = configparser.RawConfigParser | |
| Back | FazBrowse Home | New Git URL |
0 commit comments