|
2 | 2 |
|
3 | 3 | import textwrap
|
4 | 4 |
|
| 5 | +from pytest_bdd.utils import collect_dumped_objects |
| 6 | + |
5 | 7 |
|
6 | 8 | def test_scenario_not_found(pytester, pytest_params):
|
7 | 9 | """Test the situation when scenario is not found."""
|
@@ -195,3 +197,85 @@ def _():
|
195 | 197 | )
|
196 | 198 | result = pytester.runpytest()
|
197 | 199 | result.assert_outcomes(passed=2)
|
| 200 | + |
| 201 | + |
| 202 | +def test_multilanguage_support(pytester): |
| 203 | + """Test multilanguage support.""" |
| 204 | + pytester.makefile( |
| 205 | + ".feature", |
| 206 | + simple=""" |
| 207 | + # language: it |
| 208 | +
|
| 209 | + Funzionalità: Funzionalità semplice |
| 210 | +
|
| 211 | + Contesto: |
| 212 | + Dato che uso uno step nel contesto |
| 213 | + Allora va tutto bene |
| 214 | +
|
| 215 | + Scenario: Scenario semplice |
| 216 | + Dato che uso uno step con "Dato" |
| 217 | + E che uso uno step con "E" |
| 218 | + Ma che uso uno step con "Ma" |
| 219 | + * che uso uno step con "*" |
| 220 | + Allora va tutto bene |
| 221 | +
|
| 222 | + Schema dello scenario: Scenario con schema |
| 223 | + Dato che uso uno step con "<nome esempio>" |
| 224 | + Allora va tutto bene |
| 225 | +
|
| 226 | + Esempi: |
| 227 | + | nome esempio | |
| 228 | + | esempio 1 | |
| 229 | + | esempio 2 | |
| 230 | + """, |
| 231 | + ) |
| 232 | + pytester.makepyfile( |
| 233 | + """ |
| 234 | + from pytest_bdd import scenario, given, then, parsers |
| 235 | + from pytest_bdd.utils import dump_obj |
| 236 | +
|
| 237 | + @scenario("simple.feature", "Scenario semplice") |
| 238 | + def test_scenario_semplice(): |
| 239 | + pass |
| 240 | +
|
| 241 | + @scenario("simple.feature", "Scenario con schema") |
| 242 | + def test_scenario_con_schema(): |
| 243 | + pass |
| 244 | +
|
| 245 | + @given("che uso uno step nel contesto") |
| 246 | + def _(): |
| 247 | + return dump_obj(("given", "che uso uno step nel contesto")) |
| 248 | +
|
| 249 | + @given(parsers.parse('che uso uno step con "{step_name}"')) |
| 250 | + def _(step_name): |
| 251 | + return dump_obj(("given", "che uso uno step con ", step_name)) |
| 252 | +
|
| 253 | + @then("va tutto bene") |
| 254 | + def _(): |
| 255 | + dump_obj(("then", "va tutto bene")) |
| 256 | + """ |
| 257 | + ) |
| 258 | + result = pytester.runpytest("-s") |
| 259 | + result.assert_outcomes(passed=3) |
| 260 | + |
| 261 | + assert collect_dumped_objects(result) == [ |
| 262 | + # 1st scenario |
| 263 | + ("given", "che uso uno step nel contesto"), |
| 264 | + ("then", "va tutto bene"), |
| 265 | + ("given", "che uso uno step con ", "Dato"), |
| 266 | + ("given", "che uso uno step con ", "E"), |
| 267 | + ("given", "che uso uno step con ", "Ma"), |
| 268 | + ("given", "che uso uno step con ", "*"), |
| 269 | + ("then", "va tutto bene"), |
| 270 | + # 2nd scenario |
| 271 | + # 1st example |
| 272 | + ("given", "che uso uno step nel contesto"), |
| 273 | + ("then", "va tutto bene"), |
| 274 | + ("given", "che uso uno step con ", "esempio 1"), |
| 275 | + ("then", "va tutto bene"), |
| 276 | + # 2nd example |
| 277 | + ("given", "che uso uno step nel contesto"), |
| 278 | + ("then", "va tutto bene"), |
| 279 | + ("given", "che uso uno step con ", "esempio 2"), |
| 280 | + ("then", "va tutto bene"), |
| 281 | + ] |
0 commit comments