def test_execute(self): d = DataContext() d['a'] = 1 d['b'] = 3 d['g'] = 5 rce = RestrictingCodeExecutable(code=CODE) ec = AsyncExecutingContext(subcontext=d, executable=rce) ec.on_trait_change(self._items_modified_fired, 'items_modified') ec.execute() ec._wait() self.assertEqual(self.events[0].added, ['c', 'd', 'f']) self.assertEqual(len(self.events), 1)
def test_execute_for_names(self): """`execute_for_names()` is part of the ExecutingContext interface """ d = DataContext() d['a'] = 1 d['b'] = 3 d['g'] = 5 rce = RestrictingCodeExecutable(code=CODE) ec = AsyncExecutingContext(subcontext=d, executable=rce) ec.on_trait_change(self._items_modified_fired, 'items_modified') ec.execute_for_names(['g']) ec._wait() self.assertEqual(self.events[0].added, ['f'])
def setUp(self): self.restricting_exec = RestrictingCodeExecutable(code=CODE) self.context = {'a': 1, 'b': 10} self.events = []