рдореИрдВ рдЕрдкрдиреЗ рдХреМрд╢рд▓ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рдорд╛рдЗрдХреНрд░реЙрдлреНрдЯ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЬрдм рдпрд╣ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рд╣реЗрд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдорд╛рдЗрдХреНрд░реЙрдлреНрдЯ рдЙрддреНрддрд░ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рдмреНрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред
рд▓реЗрдХрд┐рди рдкреНрд░рд╕реНрддреБрдд рд╕рднреА рддрд░реАрдХреЗ рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрддреЗред
рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА:
рдЧрд▓рддреА рдХрд╣рд╛рдБ рд╣реИ?
рдореБрдЭреЗ рдХреБрдВрдЬреА-рд╢рдмреНрдж "contain" рдпрд╛ "include" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ?
рд╣рд╛рдп рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐рд╕реА рд╢рдмреНрдж рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
Then mycroft reply should contain "SOMETHING CLEVER"
рдЬрд╣рд╛рдВ рдХреБрдЫ рдЪрд╛рд▓рд╛рдХ mycroft рд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЪрддреБрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ :)
рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдХреА рдХреМрд╢рд▓ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ "рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" рдЪрд░рдг рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рджреЗрдЦрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ ...
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИред
рдпрджрд┐ рдЖрдк рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ "рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" рджреВрд╕рд░реЗ рдЪрд░рдг рдХреА рддрд░рд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ {skill} рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рддреЛ рдЗрд╕ рдЪрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ "рдлрд┐рд░ mycroft..." рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рди рдХрд┐ "рдлрд┐рд░ {skillname}..."
рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рджреЛ рддреБрд▓рдирд╛ рдХрд░реЗрдВ...
@then('mycroft рдЙрддреНрддрд░ рдореЗрдВ "{text}"' рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
рдФрд░ рджреВрд╕рд░реЗ рдЪрд░рдг рдХреА рддрд░рд╣ рдирд╣реАрдВ
@then('"{skill}" рдХреЛ рдареАрдХ "{text}"' рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП)
рдЕрд░реЗ, рдореИрдВрдиреЗ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдореЗрд░реА рдУрд░ рд╕реЗ рдПрдХ рдЧрд▓рддреА рдереАред
рд╡реНрдпрд╛рдкрдХ "рдорд╛рдЗрдХреНрд░реЙрдлреНрдЯ рдЙрддреНрддрд░" рдЪрд░рдг рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдХреМрд╢рд▓ рддрдм рддрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдЖрдкрдХреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдлрд┐рд▓ рдЯрд╛рд╡рд░ рдХреА рдКрдВрдЪрд╛рдИ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХрд╛ рдкреНрд░рд╢реНрди рдкреВрдЫрдирд╛ - рдпрд╣ рдбрдХрдбрдХрдЧреЛ, рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛, рдпрд╛ рд╡реЛрд▓реНрдлреНрд░рд╛рдо рдЕрд▓реНрдлрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рдлрд▓ рдмрд╛рддрдЪреАрдд рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рдЕрдЪреНрдЫреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдирдП рдХрджрдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдареАрдХ рд╣реИред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ thethen_contains рдЪрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдореБрдЭреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ:
`рдлрд╝реАрдЪрд░: рд╡рд░реНрддрдорд╛рди рдореМрд╕рдо
рдкрд░рд┐рджреГрд╢реНрдп: рдкреЗрд░рд┐рд╕ рдореЗрдВ рддрд╛рдкрдорд╛рди
Given an english speaking user
And user is located in Paris
When the user says "how hot will it be today"
Then "mycroft-weather" should reply with dialog from "current.high.temperature.dialog"
But mycroft reply should contain "Paris"`
рдЬрдм рдореИрдВ рд▓реЗрдХрд┐рди рдпрд╛ рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрдж рдХреА рдЬрд╛рдВрдЪ рдкрд┐рдЫрд▓реЗ рдЙрддреНрддрд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
Then mycroft reply should contain...
, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреА usign рд▓реЗрдХрд┐рди|рдФрд░, рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдирдП рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрддреНрддрд░ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рдмреНрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд░рдг рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдРрд╕реЗ рдЪрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдЙрддреНрддрд░ рдкрд░ рдФрд░ рдпрд╛ рд▓реЗрдХрд┐рди рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
But
рдФрд░ And
рдкрд┐рдЫрд▓реЗ рдЙрддреНрддрд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
рдЕрдЧрд░ рдЖрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВ
"Then "myskil" should reply with dialog "myskill.dialog"
"And|But "myskill" should reply with dialog "myskillother.dialog"
рдПрдХ рд╣реА рд╣реИ
"Then "myskil" should reply with dialog "myskill.dialog"
"Then "myskill" should reply with dialog "myskillother.dialog"
рддреЛ and|but
рдХреЛ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ then|given
рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдкрд┐рдЫрд▓рд╛ рдЪрд░рдг then
рдЪрд░рдг рд╣реИ рддреЛ then
рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЕрдиреНрдпрдерд╛ рд╕рд╛рде given
ред
рддреЛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ thethen_contain рд╡рд╣реА рд╣реИ, рдЪреЗрдХ рдПрдХ рдирдП рдмреЛрд▓реЗ рдЧрдП рдЙрдЪреНрдЪрд╛рд░рдг рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рди рдХрд┐ рдкрд┐рдЫрд▓реЗ рдкрд░ред
рдпрд╣ рдЗрд╕рд▓рд┐рдП рднреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ mycroft рд╕рдВрджреЗрд╢ рдмрд╕ рджрд┐рдП рдЧрдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рд╣реЗрдЬрддреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ рддреЛ рдЙрд╕ рдкрд░ рдкрд╣реБрдВрдЪ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдкреБрд▓ рдЕрдиреБрд░реЛрдз #2711 рджреЗрдЦреЗрдВ рдФрд░ #2714 рдЬрд╛рд░реА рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЕрд░реЗ, рдореИрдВрдиреЗ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдореЗрд░реА рдУрд░ рд╕реЗ рдПрдХ рдЧрд▓рддреА рдереАред
рд╡реНрдпрд╛рдкрдХ "рдорд╛рдЗрдХреНрд░реЙрдлреНрдЯ рдЙрддреНрддрд░" рдЪрд░рдг рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдХреМрд╢рд▓ рддрдм рддрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдЖрдкрдХреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдлрд┐рд▓ рдЯрд╛рд╡рд░ рдХреА рдКрдВрдЪрд╛рдИ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХрд╛ рдкреНрд░рд╢реНрди рдкреВрдЫрдирд╛ - рдпрд╣ рдбрдХрдбрдХрдЧреЛ, рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛, рдпрд╛ рд╡реЛрд▓реНрдлреНрд░рд╛рдо рдЕрд▓реНрдлрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рдлрд▓ рдмрд╛рддрдЪреАрдд рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рдЕрдЪреНрдЫреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдирдП рдХрджрдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: