Exemple #1
0
    def test_queue(self):
        self.interpreter.queue(Event('e1'))
        self.assertEqual(self.interpreter._select_event(), Event('e1'))

        self.interpreter.queue(InternalEvent('e1'))
        self.assertEqual(self.interpreter._select_event(), InternalEvent('e1'))

        with self.assertRaises(ValueError):
            self.interpreter.queue('e1')
Exemple #2
0
    def __send(self, name: str, **kwargs):
        """
        Add an internal event to interpreter queue.

        :param name: name of the event
        :param kwargs: additional event parameters
        """
        self._interpreter.queue(InternalEvent(name, **kwargs))
Exemple #3
0
    def test_bind_callable(self):
        with open('tests/yaml/simple.yaml') as f:
            other_sc = io.import_from_yaml(f)
        other_interpreter = Interpreter(other_sc)

        self.interpreter.bind(other_interpreter.queue)
        self.assertEqual(self.interpreter._bound, [other_interpreter.queue])

        self.interpreter.queue(InternalEvent('test'))
        self.assertTrue(self.interpreter._internal_events.pop(), Event('test'))
        self.assertTrue(other_interpreter._external_events.pop(), Event('test'))
Exemple #4
0
    def test_bind(self):
        with open('tests/yaml/simple.yaml') as f:
            other_sc = io.import_from_yaml(f)
        other_interpreter = Interpreter(other_sc)

        self.interpreter.bind(other_interpreter)
        self.assertIn(other_interpreter.queue, self.interpreter._bound)

        self.interpreter.raise_event(InternalEvent('test'))
        self.assertTrue(self.interpreter._internal_events.pop(), Event('test'))
        self.assertTrue(other_interpreter._external_events.pop(),
                        Event('test'))
Exemple #5
0
 def test_ignore_internal_events(self):
     trace = [
         MacroStep(2, [MicroStep(Event('a'))]),
         MacroStep(5, [MicroStep(Event('b'))]),
         MacroStep(9, [MicroStep(InternalEvent('c'))]),
         MacroStep(14, [MicroStep(Event('d'))]),
     ]
     self.assertListEqual(story_from_trace(trace), [
         Pause(2),
         Event('a'),
         Pause(3),
         Event('b'),
         Pause(4),
         Pause(5),
         Event('d')
     ])
Exemple #6
0
 def test_send(self):
     self.evaluator._execute_code('send("hello")')
     self.interpreter.queue.assert_called_with(InternalEvent('hello'))
Exemple #7
0
 def test_send(self):
     events = self.evaluator._execute_code('send("hello")')
     self.assertEqual(events, [InternalEvent('hello')])