Skip to content

Commit 40d8d2a

Browse files
gnatnggit
andcommitted
Allow context to be used like a dict. (#54)
* Add dict style access to context. * add test_servercontext --------- Co-authored-by: nggit <[email protected]>
1 parent ce76e49 commit 40d8d2a

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

tests/test_tremolo_objects.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,23 @@ def test_serverconnections(self):
196196

197197
self.assertEqual(list(conn.values()), [2, 3])
198198

199+
def test_servercontext(self):
200+
context = ServerContext()
201+
202+
self.assertEqual(context.get('options'), {})
203+
204+
context.set('options', False)
205+
self.assertEqual(context.get('options'), False)
206+
self.assertEqual(context.get('opt'), None)
207+
208+
with self.assertRaises(AttributeError):
209+
context['options'] = {}
210+
211+
context['opt'] = {}
212+
213+
self.assertEqual(context['options'], False)
214+
self.assertEqual(context['opt'], {})
215+
199216

200217
if __name__ == '__main__':
201218
unittest.main()

tremolo/lib/contexts.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,12 @@ def tasks(self):
2121

2222
def set(self, name, value):
2323
self.__dict__[name] = value
24+
25+
def get(self, name, default=None):
26+
return self.__dict__.get(name, default)
27+
28+
def __setitem__(self, *args):
29+
self.__setattr__(*args)
30+
31+
def __getitem__(self, name):
32+
return self.__dict__[name]

0 commit comments

Comments
 (0)