diff --git a/tests/test_tremolo_objects.py b/tests/test_tremolo_objects.py index 0e67c1cc..38f3d2d5 100644 --- a/tests/test_tremolo_objects.py +++ b/tests/test_tremolo_objects.py @@ -196,6 +196,23 @@ def test_serverconnections(self): self.assertEqual(list(conn.values()), [2, 3]) + def test_servercontext(self): + context = ServerContext() + + self.assertEqual(context.get('options'), {}) + + context.set('options', False) + self.assertEqual(context.get('options'), False) + self.assertEqual(context.get('opt'), None) + + with self.assertRaises(AttributeError): + context['options'] = {} + + context['opt'] = {} + + self.assertEqual(context['options'], False) + self.assertEqual(context['opt'], {}) + if __name__ == '__main__': unittest.main() diff --git a/tremolo/lib/contexts.py b/tremolo/lib/contexts.py index 2d82de71..aba09d7a 100644 --- a/tremolo/lib/contexts.py +++ b/tremolo/lib/contexts.py @@ -21,3 +21,12 @@ def tasks(self): def set(self, name, value): self.__dict__[name] = value + + def get(self, name, default=None): + return self.__dict__.get(name, default) + + def __setitem__(self, *args): + self.__setattr__(*args) + + def __getitem__(self, name): + return self.__dict__[name]