Skip to content

Commit 6264e17

Browse files
authored
Merge pull request RasaHQ#5339 from RasaHQ/fix-flacky-test
Fix flacky test
2 parents 9fc6f98 + e39a780 commit 6264e17

File tree

5 files changed

+71
-111
lines changed

5 files changed

+71
-111
lines changed

CHANGELOG.rst

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -104,27 +104,6 @@ Improvements
104104
does not help for the case where messages are sent to an unavailable RabbitMQ instance.
105105
- `#5250 <https://github.com/rasahq/rasa/issues/5250>`_: Added support for mattermost connector to use bot accounts.
106106
- `#5266 <https://github.com/rasahq/rasa/issues/5266>`_: We updated our code to TensorFlow 2.
107-
108-
We added a new docker image for ConveRT.
109-
The new images uses the following configuration
110-
111-
.. code-block:: yaml
112-
113-
language: "en"
114-
115-
pipeline:
116-
- name: ConveRTTokenizer
117-
- name: ConveRTFeaturizer
118-
- name: RegexFeaturizer
119-
- name: LexicalSyntacticFeaturizer
120-
- name: CountVectorsFeaturizer
121-
- name: CountVectorsFeaturizer
122-
analyzer: "char_wb"
123-
min_ngram: 1
124-
max_ngram: 4
125-
- name: DIETClassifier
126-
- name: EntitySynonymMapper
127-
- name: ResponseSelector
128107
- `#5317 <https://github.com/rasahq/rasa/issues/5317>`_: Events exported using ``rasa export`` receive a message header if published through a
129108
``PikaEventBroker``. The header is added to the message's ``BasicProperties.headers``
130109
under the ``rasa-export-process-id`` key
Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,17 @@
11
## simple_story_with_only_start
2-
* greet: Hello
3-
- utter_ask_howcanhelp
2+
* greet: /greet
3+
- utter_greet
44

55
## simple_story_with_multiple_turns
6-
* greet: good morning
7-
- utter_ask_howcanhelp
8-
* inform: im looking for a [moderately](price:moderate) priced restaurant in the [east](location) part of town
9-
- utter_on_it
10-
- utter_ask_cuisine
6+
* greet: /greet
7+
- utter_greet
8+
* default: /default
9+
- utter_default
10+
* goodbye: /goodbye
11+
- utter_goodbye
1112

1213
## story_with_multiple_entities_correction_and_search
13-
* greet: hello
14-
- utter_ask_howcanhelp
15-
* inform: im looking for a [cheap](price:lo) restaurant which has [french](cuisine) food and is located in [bombay](location)
16-
- utter_on_it
17-
- utter_ask_numpeople
18-
* inform: for [six](people:6) please
19-
- utter_ask_moreupdates
20-
* inform: actually i need a [moderately](price:moderate) priced restaurant
21-
- utter_ask_moreupdates
22-
* deny: no
23-
- utter_ack_dosearch
24-
- action_search_restaurants
25-
- action_suggest
26-
27-
## story_with_intent_restated
28-
* greet: /greet
29-
- utter_ask_howcanhelp
14+
* greet: /greet{"name": "Max"}
15+
- utter_greet
16+
* default: /default
17+
- utter_default
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
## Happy path
2+
* greet: /greet
3+
- utter_greet
4+
* request_restaurant: /request_restaurant
5+
- restaurant_form
6+
- form{"name": "restaurant_form"}
7+
- form{"name": null}
8+
- utter_slots_values
9+
* thankyou: /thankyou
10+
- utter_noworries
11+
12+
## Happy path with form prefix
13+
* greet: /greet
14+
- utter_greet
15+
* request_restaurant: /request_restaurant
16+
- restaurant_form
17+
- form{"name": "restaurant_form"}
18+
* form: /inform{"cuisine": "afghan"} <!-- intent "inform" is ignored inside the form -->
19+
- form: restaurant_form
20+
- form{"name": null}
21+
- utter_slots_values
22+
* thankyou: /thankyou
23+
- utter_noworries
24+
25+
## unhappy path
26+
* greet: /greet
27+
- utter_greet
28+
* request_restaurant: /request_restaurant
29+
- restaurant_form
30+
- form{"name": "restaurant_form"}
31+
* chitchat: /chitchat
32+
- utter_chitchat
33+
- restaurant_form
34+
- form{"name": null}
35+
- utter_slots_values
36+
* thankyou: /thankyou
37+
- utter_noworries

tests/core/conftest.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,15 @@
88
from typing import Text, Iterator
99

1010
import pytest
11-
from _pytest.tmpdir import TempdirFactory
1211

1312
import rasa.utils.io
1413
from rasa.core.agent import Agent
1514
from rasa.core.channels.channel import CollectingOutputChannel, OutputChannel
16-
from rasa.core.domain import Domain, SessionConfig
15+
from rasa.core.domain import Domain
1716
from rasa.core.events import ReminderScheduled, UserUttered, ActionExecuted
18-
from rasa.core.interpreter import RegexInterpreter
1917
from rasa.core.nlg import TemplatedNaturalLanguageGenerator
20-
from rasa.core.policies.ensemble import PolicyEnsemble, SimplePolicyEnsemble
21-
from rasa.core.policies.memoization import (
22-
AugmentedMemoizationPolicy,
23-
MemoizationPolicy,
24-
Policy,
25-
)
18+
from rasa.core.policies.ensemble import PolicyEnsemble
19+
from rasa.core.policies.memoization import Policy
2620
from rasa.core.processor import MessageProcessor
2721
from rasa.core.slots import Slot
2822
from rasa.core.tracker_store import InMemoryTrackerStore, MongoTrackerStore
@@ -229,23 +223,11 @@ def project() -> Text:
229223

230224

231225
@pytest.fixture
232-
async def restaurantbot(trained_async) -> Text:
233-
restaurant_domain = os.path.join(RESTAURANTBOT_PATH, "domain.yml")
234-
restaurant_config = os.path.join(RESTAURANTBOT_PATH, "config.yml")
235-
restaurant_data = os.path.join(RESTAURANTBOT_PATH, "data/")
236-
237-
return await trained_async(restaurant_domain, restaurant_config, restaurant_data)
238-
239-
240-
@pytest.fixture
241-
async def form_bot(trained_async) -> Agent:
226+
async def form_bot_agent(trained_async, tmpdir_factory) -> Agent:
242227
zipped_model = await trained_async(
243228
domain="examples/formbot/domain.yml",
244229
config="examples/formbot/config.yml",
245-
training_files=[
246-
"examples/formbot/data/stories.md",
247-
"examples/formbot/data/nlu.md",
248-
],
230+
training_files=["examples/formbot/data/stories.md"],
249231
)
250232

251233
return Agent.load_local_model(zipped_model)

tests/core/test_evaluation.py

Lines changed: 17 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import os
2-
from typing import Text
3-
42
from pathlib import Path
53

6-
import pytest
7-
84
from rasa.core.test import _generate_trackers, collect_story_predictions, test
95

106
# we need this import to ignore the warning...
@@ -34,63 +30,41 @@ async def test_evaluation_image_creation(tmpdir: Path, default_agent: Agent):
3430
assert os.path.isfile(stories_path)
3531

3632

37-
# TODO: this test is flaky - needs to be fixed
38-
@pytest.mark.xfail(strict=False)
39-
async def test_end_to_end_evaluation_script(restaurantbot: Text):
40-
restaurantbot = Agent.load(restaurantbot)
33+
async def test_end_to_end_evaluation_script(default_agent: Agent):
4134
completed_trackers = await _generate_trackers(
42-
END_TO_END_STORY_FILE, restaurantbot, use_e2e=True
35+
END_TO_END_STORY_FILE, default_agent, use_e2e=True
4336
)
4437

4538
story_evaluation, num_stories = collect_story_predictions(
46-
completed_trackers, restaurantbot, use_e2e=True
39+
completed_trackers, default_agent, use_e2e=True
4740
)
4841

4942
serialised_store = [
50-
"utter_ask_howcanhelp",
51-
"action_listen",
52-
"utter_ask_howcanhelp",
43+
"utter_greet",
5344
"action_listen",
54-
"utter_on_it",
55-
"utter_ask_cuisine",
45+
"utter_greet",
5646
"action_listen",
57-
"utter_ask_howcanhelp",
47+
"utter_default",
5848
"action_listen",
59-
"utter_on_it",
60-
"utter_ask_numpeople",
49+
"utter_goodbye",
6150
"action_listen",
62-
"utter_ask_moreupdates",
51+
"utter_greet",
6352
"action_listen",
64-
"utter_ask_moreupdates",
53+
"utter_default",
6554
"action_listen",
66-
"utter_ack_dosearch",
67-
"action_search_restaurants",
68-
"action_suggest",
69-
"action_listen",
70-
"utter_ask_howcanhelp",
71-
"action_listen",
72-
"greet",
7355
"greet",
74-
"inform",
7556
"greet",
76-
"inform",
77-
"inform",
78-
"inform",
79-
"deny",
57+
"default",
58+
"goodbye",
8059
"greet",
81-
"[moderately](price:moderate)",
82-
"[east](location)",
83-
"[cheap](price:lo)",
84-
"[french](cuisine)",
85-
"[bombay](location)",
86-
"[six](people:6)",
87-
"[moderately](price:moderate)",
60+
"default",
61+
'[{"name": "Max"}](name:Max)',
8862
]
8963

9064
assert story_evaluation.evaluation_store.serialise()[0] == serialised_store
9165
assert not story_evaluation.evaluation_store.has_prediction_target_mismatch()
9266
assert len(story_evaluation.failed_stories) == 0
93-
assert num_stories == 4
67+
assert num_stories == 3
9468

9569

9670
async def test_end_to_end_evaluation_script_unknown_entity(default_agent: Agent):
@@ -107,13 +81,13 @@ async def test_end_to_end_evaluation_script_unknown_entity(default_agent: Agent)
10781
assert num_stories == 1
10882

10983

110-
async def test_end_to_evaluation_with_forms(form_bot: Agent):
84+
async def test_end_to_evaluation_with_forms(form_bot_agent: Agent):
11185
test_stories = await _generate_trackers(
112-
"examples/formbot/tests/end-to-end-stories.md", form_bot, use_e2e=True
86+
"data/test_evaluations/form-end-to-end-stories.md", form_bot_agent, use_e2e=True
11387
)
11488

11589
story_evaluation, num_stories = collect_story_predictions(
116-
test_stories, form_bot, use_e2e=True
90+
test_stories, form_bot_agent, use_e2e=True
11791
)
11892

11993
assert not story_evaluation.evaluation_store.has_prediction_target_mismatch()

0 commit comments

Comments
 (0)