From: Eric Wang Date: Mon, 2 Nov 2015 22:51:24 +0000 (-0800) Subject: Make __getitem__ and __setitem__ mirror behavior of __getattr__ and __setattr__ X-Git-Tag: v4.4.0b1~73^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80df78ac77e020ce23ac16c81368906c75867558;p=thirdparty%2Ftornado.git Make __getitem__ and __setitem__ mirror behavior of __getattr__ and __setattr__ --- diff --git a/tornado/options.py b/tornado/options.py old mode 100644 new mode 100755 index ba16b1a7f..bdb5baa0a --- a/tornado/options.py +++ b/tornado/options.py @@ -132,8 +132,10 @@ class OptionParser(object): return name in self._options def __getitem__(self, name): - name = self._normalize_name(name) - return self._options[name].value() + return self.__getattr__(name) + + def __setitem__(self, name, value): + return self.__setattr__(name, value) def items(self): """A sequence of (name, value) pairs. diff --git a/tornado/test/options_test.py b/tornado/test/options_test.py index c32184bb4..2f2384b24 100644 --- a/tornado/test/options_test.py +++ b/tornado/test/options_test.py @@ -131,6 +131,12 @@ class OptionsTest(unittest.TestCase): options = self._sample_options() self.assertEqual(1, options['a']) + def test_setitem(self): + options = OptionParser() + options.define('foo', default=1, type=int) + options['foo'] = 2 + self.assertEqual(options['foo'], 2) + def test_items(self): options = self._sample_options() # OptionParsers always define 'help'.