]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Make __getitem__ and __setitem__ mirror behavior of __getattr__ and __setattr__
authorEric Wang <eric1990@gmail.com>
Mon, 2 Nov 2015 22:51:24 +0000 (14:51 -0800)
committerEric Wang <eric1990@gmail.com>
Mon, 2 Nov 2015 22:51:24 +0000 (14:51 -0800)
tornado/options.py [changed mode: 0644->0755]
tornado/test/options_test.py

old mode 100644 (file)
new mode 100755 (executable)
index ba16b1a..bdb5baa
@@ -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.
index c32184bb405e39b3e02fb4ce56f572a720b19d71..2f2384b2480b3bf83584db83e68ef0453d729e94 100644 (file)
@@ -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'.