mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-17 06:00:42 +01:00
CanonicalNamed the toggles.
This commit is contained in:
parent
1280dbdc90
commit
f4e4233704
@ -200,7 +200,9 @@ class ToggleDictionary(object):
|
||||
if not toggles:
|
||||
raise ValueError, 'At least one toggle must be provided.'
|
||||
self.channels = ircutils.IrcDict()
|
||||
self.defaults = toggles
|
||||
self.defaults = {}
|
||||
for (k, v) in toggles.iteritems():
|
||||
self.defaults[callbacks.canonicalName(k)] = v
|
||||
|
||||
def _getDict(self, channel):
|
||||
#debug.printf('_getDict(%s)' % channel)
|
||||
@ -212,11 +214,13 @@ class ToggleDictionary(object):
|
||||
return self.channels[channel]
|
||||
|
||||
def get(self, key, channel=None):
|
||||
key = callbacks.canonicalName(key)
|
||||
return self._getDict(channel)[key]
|
||||
|
||||
def toggle(self, key, value=None, channel=None):
|
||||
#debug.printf('inside toggle: %s %s %s' % (key, value, channel))
|
||||
d = self._getDict(channel)
|
||||
key = callbacks.canonicalName(key)
|
||||
if value is None:
|
||||
d[key] = not d[key] # Raises KeyError, we want this.
|
||||
else:
|
||||
|
@ -48,6 +48,23 @@ class ToggleDictionaryTestCase(unittest.TestCase):
|
||||
self.assertEqual(t.get('foo', '#baz'), False)
|
||||
#self.assertRaises(TypeError, t.toggle, 'foo', value='lak')
|
||||
|
||||
def testCanonicalization(self):
|
||||
t = plugins.ToggleDictionary({'foo': True})
|
||||
self.assertEqual(t.get('foo'), True)
|
||||
self.assertEqual(t.get('fOO'), True)
|
||||
self.assertEqual(t.get('Foo'), True)
|
||||
self.assertEqual(t.get('-fo-o'), True)
|
||||
t = plugins.ToggleDictionary({'FOO': True})
|
||||
self.assertEqual(t.get('foo'), True)
|
||||
self.assertEqual(t.get('fOO'), True)
|
||||
self.assertEqual(t.get('Foo'), True)
|
||||
self.assertEqual(t.get('-fo-o'), True)
|
||||
t = plugins.ToggleDictionary({'f-o-o': True})
|
||||
self.assertEqual(t.get('foo'), True)
|
||||
self.assertEqual(t.get('fOO'), True)
|
||||
self.assertEqual(t.get('Foo'), True)
|
||||
self.assertEqual(t.get('-fo-o'), True)
|
||||
|
||||
def test__init__(self):
|
||||
self.assertRaises(TypeError, plugins.ToggleDictionary.__init__)
|
||||
self.assertRaises(ValueError, plugins.ToggleDictionary, {})
|
||||
|
Loading…
x
Reference in New Issue
Block a user