def test_fsm_confused_state(): with patch_conf(settings_file=ENGINE_SETTINGS_FILE): fsm = FSM() reg = Register({}) req = Request(MockEmptyMessage(), reg) run(req.transform()) assert fsm._confused_state(req) == BaseTestState reg = Register({Register.STATE: 'tests.issue_0001.states.Hello'}) req = Request(MockEmptyMessage(), reg) run(req.transform()) assert fsm._confused_state(req) == Hello
def test_choice_trigger(reg): with patch_conf(LOADER_CONFIG): req = Request(MockTextMessage('foo', True), reg) run(req.transform()) ct_factory = trig.Choice.builder() ct = ct_factory(req) # type: trig.Choice assert run(ct.rank()) == 1.0 assert ct.slug == 'foo' req = Request(MockTextMessage('some other stuff'), reg) run(req.transform()) ct_factory = trig.Choice.builder() ct = ct_factory(req) # type: trig.Choice assert run(ct.rank()) == 1.0 assert ct.slug == 'bar'
def text_request(reg): req = Request( MockTextMessage(), reg, ) run(req.transform()) return req
def test_transform_layers(reg): with patch_conf(LOADER_CONFIG): req = Request( MockTextMessage(), reg, ) run(req.transform()) stack = req.stack assert layers.RawText in stack._transformed assert stack.get_layer(layers.RawText).text == 'foo' assert len(stack.get_layers(layers.Text)) == 1 assert len(stack.get_layers(layers.RawText)) == 1
def test_fsm_find_trigger(reg): with patch_conf(settings_file=ENGINE_SETTINGS_FILE): fsm = FSM() req = Request(MockTextMessage('hello'), reg) run(req.transform()) trigger, state = run(fsm._find_trigger(req)) assert isinstance(trigger, trig.Text) assert state == Hello req = Request(MockChoiceMessage(), reg) run(req.transform()) trigger, state = run(fsm._find_trigger(req)) assert trigger is None assert state is None reg = Register({ Register.STATE: HowAreYou.name(), Register.TRANSITION: { 'choices': { 'yes': { 'text': 'Yes', 'intent': 'YES', }, 'no': { 'text': 'No', 'intent': 'NO' }, }, }, }) req = Request(MockChoiceMessage(), reg) run(req.transform()) trigger, state = run(fsm._find_trigger(req)) assert isinstance(trigger, trig.Choice) assert state == Great
def test_request_stack(reg): req = Request(MockTextMessage('foo'), reg) run(req.transform()) assert req.has_layer(l.Text) assert req.get_layer(l.Text).text == 'foo' assert len(req.get_layers(l.Text)) == 1
def test_request_trans_reg(reg): req = Request(MockTextMessage('foo'), reg) run(req.transform()) assert req.get_trans_reg('foo') == 42 assert req.get_trans_reg('bar') is None assert req.get_trans_reg('bar', True) is True