From 453062e29a49d30bc0e9ad77b6231a7ba072968a Mon Sep 17 00:00:00 2001 From: Kostiantyn Goloveshko Date: Mon, 4 Nov 2024 14:31:12 +0200 Subject: [PATCH 1/4] Fixup mobile alabaster theme config --- docs/conf.py | 9 ++- docs/features.rst | 166 +++++++++++++++++++++++----------------------- 2 files changed, 89 insertions(+), 86 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 0c9357b0..ce85f37e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -100,9 +100,12 @@ # further. For a list of options available for each theme, see the # documentation. html_theme_options = { - "page_width": "100%", - "sidebar_width": "270px", - "body_max_width": "1200%", + "page_width": "1440px", + "fixed_sidebar": True, + "github_banner": True, + "github_user": "elchupanebrej", + "github_repo": "pytest-bdd-ng", + "body_max_width": "max-content", } # Add any paths that contain custom themes here, relative to this directory. diff --git a/docs/features.rst b/docs/features.rst index 7fe413c5..ed5a81d8 100644 --- a/docs/features.rst +++ b/docs/features.rst @@ -7,75 +7,99 @@ Features -Feature -------- +Tutorial +-------- -Tag conversion -############## +Launch +###### -.. include:: ../features/Feature/Tag conversion.feature +.. include:: ../features/Tutorial/Launch.feature :code: gherkin -Tag -### +Step definition +--------------- -.. include:: ../features/Feature/Tag.feature +Pytest fixtures substitution +############################ + +.. include:: ../features/Step definition/Pytest fixtures substitution.feature :code: gherkin -Description -########### +Target fixtures specification +############################# -.. include:: ../features/Feature/Description.feature +.. include:: ../features/Step definition/Target fixtures specification.feature :code: gherkin -Localization -############ +Parameters +########## -.. include:: ../features/Feature/Localization.feature - :code: gherkin +Conversion +!!!!!!!!!! -Load -#### +.. include:: ../features/Step definition/Parameters/Conversion.feature + :code: gherkin -Autoload +Defaults !!!!!!!! -.. include:: ../features/Feature/Load/Autoload.feature +.. include:: ../features/Step definition/Parameters/Defaults.feature :code: gherkin -Scenario function loader +Injection as fixtures +!!!!!!!!!!!!!!!!!!!!! + +.. include:: ../features/Step definition/Parameters/Injection as fixtures.feature + :code: gherkin + +Parsing by custom parser !!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Feature/Load/Scenario function loader.feature +.. include:: ../features/Step definition/Parameters/Parsing by custom parser.feature :code: gherkin -Scenario search from base directory -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Parsing +!!!!!!! -.. include:: ../features/Feature/Load/Scenario search from base directory.feature +.. include:: ../features/Step definition/Parameters/Parsing.feature :code: gherkin -Scenario search from base url -!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Step +---- -.. include:: ../features/Feature/Load/Scenario search from base url.feature +Data table +########## + +.. include:: ../features/Step/Data table.feature :code: gherkin -Scenario --------- +Doc string +########## -Tag -### +.. include:: ../features/Step/Doc string.feature + :code: gherkin -.. include:: ../features/Scenario/Tag.feature +Step definition bounding +######################## + +.. include:: ../features/Step/Step definition bounding.feature :code: gherkin +Scenario +-------- + Description ########### .. include:: ../features/Scenario/Description.feature :code: gherkin +Tag +### + +.. include:: ../features/Scenario/Tag.feature + :code: gherkin + Outline ####### @@ -94,80 +118,56 @@ Gathering .. include:: ../features/Report/Gathering.feature :code: gherkin -Tutorial --------- - -Launch -###### - -.. include:: ../features/Tutorial/Launch.feature - :code: gherkin - -Step ----- - -Data table -########## - -.. include:: ../features/Step/Data table.feature - :code: gherkin +Feature +------- -Step definition bounding -######################## +Description +########### -.. include:: ../features/Step/Step definition bounding.feature +.. include:: ../features/Feature/Description.feature :code: gherkin -Doc string -########## +Localization +############ -.. include:: ../features/Step/Doc string.feature +.. include:: ../features/Feature/Localization.feature :code: gherkin -Step definition ---------------- - -Target fixtures specification -############################# +Tag conversion +############## -.. include:: ../features/Step definition/Target fixtures specification.feature +.. include:: ../features/Feature/Tag conversion.feature :code: gherkin -Pytest fixtures substitution -############################ +Tag +### -.. include:: ../features/Step definition/Pytest fixtures substitution.feature +.. include:: ../features/Feature/Tag.feature :code: gherkin -Parameters -########## - -Injection as fixtures -!!!!!!!!!!!!!!!!!!!!! - -.. include:: ../features/Step definition/Parameters/Injection as fixtures.feature - :code: gherkin +Load +#### -Parsing -!!!!!!! +Autoload +!!!!!!!! -.. include:: ../features/Step definition/Parameters/Parsing.feature +.. include:: ../features/Feature/Load/Autoload.feature :code: gherkin -Parsing by custom parser +Scenario function loader !!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Step definition/Parameters/Parsing by custom parser.feature +.. include:: ../features/Feature/Load/Scenario function loader.feature :code: gherkin -Conversion -!!!!!!!!!! +Scenario search from base directory +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Step definition/Parameters/Conversion.feature +.. include:: ../features/Feature/Load/Scenario search from base directory.feature :code: gherkin -Defaults -!!!!!!!! +Scenario search from base url +!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Step definition/Parameters/Defaults.feature +.. include:: ../features/Feature/Load/Scenario search from base url.feature :code: gherkin From e74de6f791590ee89c2ac51bcaefb1bb2c4aafb0 Mon Sep 17 00:00:00 2001 From: Kostiantyn Goloveshko Date: Mon, 4 Nov 2024 14:39:17 +0200 Subject: [PATCH 2/4] Add documentation link to pyproject.toml --- README.rst | 4 - pyproject.toml | 353 +++++++++++++++++++++++++------------------------ 2 files changed, 178 insertions(+), 179 deletions(-) diff --git a/README.rst b/README.rst index b9da77fa..03cf1df2 100644 --- a/README.rst +++ b/README.rst @@ -14,7 +14,6 @@ BDD library for the pytest runner .. _behave: https://pypi.python.org/pypi/behave .. _pytest: https://docs.pytest.org .. _Gherkin: https://cucumber.io/docs/gherkin/reference -.. _pytest-bdd-ng: https://pytest-bdd-ng.readthedocs.io/en/default/ .. _pytest-bdd: https://github.com/pytest-dev/pytest-bdd **pytest-bdd-ng** combine descriptive clarity of Gherkin_ language @@ -28,9 +27,6 @@ mentioned in feature steps with dependency injection. This allows a true BDD just-enough specification of the requirements without obligatory maintaining any context object containing the side effects of Gherkin imperative declarations. -.. NOTE:: Project documentation on readthedocs: pytest-bdd-ng_ - - Why ``NG`` ? ------------ diff --git a/pyproject.toml b/pyproject.toml index 83b2d8fc..09ff4eb0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,175 +1,178 @@ -[build-system] -build-backend = "setuptools.build_meta" -requires = ["setuptools<68", "wheel"] - -[project] -authors = [ - {name = "Oleg Pidsadnyi", email = "oleg.pidsadnyi@gmail.com"}, - {name = "Anatoly Bubenkov", email = "bubenkoff@gmail.com"}, - {name = "Adam Coddington", email = "me@adamcoddington.net"}, - {name = "Albert-Jan Nijburg", email = "albertjan@curit.com"}, - {name = "Alessio Bogon", email = "youtux@gmail.com"}, - {name = "Andrey Makhnach", email = "andrey.makhnach@gmail.com"}, - {name = "Aron Curzon", email = "curzona@gmail.com"}, - {name = "Dmitrijs Milajevs", email = "dimazest@gmail.com"}, - {name = "Dmitry Kolyagin", email = "pauk-slon@users.noreply.github.com"}, - {name = "Florian Bruhin", email = "me@the-compiler.org"}, - {name = "Floris Bruynooghe", email = "flub@devork.be"}, - {name = "Harro van der Klauw", email = "hvdklauw@gmail.com"}, - {name = "Hugo van Kemenade", email = "hugovk@users.noreply.github.com"}, - {name = "Konstantin Goloveshko", email = "kostya.goloveshko@gmail.com"}, - {name = "Laurence Rowe", email = "l@lrowe.co.uk"}, - {name = "Leonardo Santagada", email = "santagada@github.com"}, - {name = "Milosz Sliwinski", email = "sliwinski.milosz@gmail.com"}, - {name = "Michiel Holtkamp", email = "github@elfstone.nl"}, - {name = "Robin Pedersen", email = "ropez@github.com"}, - {name = "Sergey Kraynev", email = "sergejyit@gmail.com"} -] -classifiers = [ - "Development Status :: 4 - Beta", - "Framework :: Pytest", - "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", - "Operating System :: POSIX", - "Operating System :: Microsoft :: Windows", - "Operating System :: MacOS :: MacOS X", - "Topic :: Software Development :: Testing", - "Topic :: Software Development :: Libraries", - "Topic :: Utilities", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13" -] -dependencies = [ - "aiohttp", - "attrs", - "certifi", - "chevron", - "ci-environment", - # This is needed until messages become regular PyPi package https://github.com/cucumber/messages/pull/165 - "cuke-messages==0.1.0", - "cucumber-expressions", - "decopatch", - "docopt-ng", - "filelock", - "gherkin-official>=24", - "importlib-metadata;python_version<'3.10.0'", - "importlib-resources", - "makefun", - "Mako", - "ordered_set", - "packaging", - "parse", - "parse_type>=0.6.0", - "pathvalidate", - "py", - "pydantic>=2.0.3", - "pytest>=5.2", - "setuptools>=58", - "cucumber-tag-expressions", - "typing-extensions;python_version<'3.11.0'" -] -description = "BDD for pytest" -license = {file = "LICENSE.rst"} -maintainers = [ - {name = "Konstantin Goloveshko", email = "kostya.goloveshko@gmail.com"} -] -name = "pytest-bdd-ng" -readme = {file = "README.rst", content-type = "text/x-rst"} -requires-python = ">=3.9" -urls = {Repository = "https://github.com/elchupanebrej/pytest-bdd-ng"} -version = "2.2.0" - -[project.entry-points] -pytest11 = {"pytest-bdd" = "pytest_bdd.plugin"} - -[project.optional-dependencies] -allure = [ - "allure-python-commons", - "allure-pytest" -] -full = [ - "pytest-bdd-ng[allure]", - "pytest-bdd-ng[struct-bdd]", - "pytest-bdd-ng[test]", - "pytest-bdd-ng[testtypes]" -] -struct-bdd = [ - "hjson", - "json5", - "pyhocon", - 'tomli;python_version<"3.11.0"', - "PyYAML", - "types-PyYAML" -] -test = [ - "allure-python-commons-test", - "execnet", - "packaging", - "PyHamcrest", - "pytest-httpserver", - "python-coveralls" -] -testenv = [ - "tox~=4.0", - "codecov" -] -testtypes = [ - "mypy", - "types-certifi", - "types-docopt", - "types-setuptools" -] - -[project.scripts] -bdd_tree_to_rst = "pytest_bdd.script.bdd_tree_to_rst:main" - -[tool.black] -line-length = 120 -target-version = ["py39", "py310", "py311", "py312", "py313"] -verbose = true - -[tool.isort] -line_length = 120 -multi_line_output = 3 -profile = "black" - -[tool.mypy] -files = "src/pytest_bdd/**/*.py" -install_types = true -non_interactive = true -plugins = [ - "pydantic.mypy" -] -show_error_codes = true -warn_return_any = true -warn_unused_configs = true - -[[tool.mypy.overrides]] -ignore_missing_imports = true -module = [ - "allure_commons.*", - "allure_pytest.*", - "attr.*", - "ci_environment.*", - "cucumber_expressions.*", - "cucumber_tag_expressions.*", - "decopatch.*", - "execnet.*", - "gherkin.*", - "hjson", - "json5", - "makefun", - "mako.*", - "ordered_set", - "parse", - "parse_type.*", - "pluggy.*", - "_pytest.*", - "pyhocon", - "pytest.*", - "yaml.*" -] +[build-system] +build-backend = "setuptools.build_meta" +requires = ["setuptools<68", "wheel"] + +[project] +authors = [ + {name = "Oleg Pidsadnyi", email = "oleg.pidsadnyi@gmail.com"}, + {name = "Anatoly Bubenkov", email = "bubenkoff@gmail.com"}, + {name = "Adam Coddington", email = "me@adamcoddington.net"}, + {name = "Albert-Jan Nijburg", email = "albertjan@curit.com"}, + {name = "Alessio Bogon", email = "youtux@gmail.com"}, + {name = "Andrey Makhnach", email = "andrey.makhnach@gmail.com"}, + {name = "Aron Curzon", email = "curzona@gmail.com"}, + {name = "Dmitrijs Milajevs", email = "dimazest@gmail.com"}, + {name = "Dmitry Kolyagin", email = "pauk-slon@users.noreply.github.com"}, + {name = "Florian Bruhin", email = "me@the-compiler.org"}, + {name = "Floris Bruynooghe", email = "flub@devork.be"}, + {name = "Harro van der Klauw", email = "hvdklauw@gmail.com"}, + {name = "Hugo van Kemenade", email = "hugovk@users.noreply.github.com"}, + {name = "Konstantin Goloveshko", email = "kostya.goloveshko@gmail.com"}, + {name = "Laurence Rowe", email = "l@lrowe.co.uk"}, + {name = "Leonardo Santagada", email = "santagada@github.com"}, + {name = "Milosz Sliwinski", email = "sliwinski.milosz@gmail.com"}, + {name = "Michiel Holtkamp", email = "github@elfstone.nl"}, + {name = "Robin Pedersen", email = "ropez@github.com"}, + {name = "Sergey Kraynev", email = "sergejyit@gmail.com"} +] +classifiers = [ + "Development Status :: 4 - Beta", + "Framework :: Pytest", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: POSIX", + "Operating System :: Microsoft :: Windows", + "Operating System :: MacOS :: MacOS X", + "Topic :: Software Development :: Testing", + "Topic :: Software Development :: Libraries", + "Topic :: Utilities", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13" +] +dependencies = [ + "aiohttp", + "attrs", + "certifi", + "chevron", + "ci-environment", + # This is needed until messages become regular PyPi package https://github.com/cucumber/messages/pull/165 + "cuke-messages==0.1.0", + "cucumber-expressions", + "decopatch", + "docopt-ng", + "filelock", + "gherkin-official>=24", + "importlib-metadata;python_version<'3.10.0'", + "importlib-resources", + "makefun", + "Mako", + "ordered_set", + "packaging", + "parse", + "parse_type>=0.6.0", + "pathvalidate", + "py", + "pydantic>=2.0.3", + "pytest>=5.2", + "setuptools>=58", + "cucumber-tag-expressions", + "typing-extensions;python_version<'3.11.0'" +] +description = "BDD for pytest" +license = {file = "LICENSE.rst"} +maintainers = [ + {name = "Konstantin Goloveshko", email = "kostya.goloveshko@gmail.com"} +] +name = "pytest-bdd-ng" +readme = {file = "README.rst", content-type = "text/x-rst"} +requires-python = ">=3.9" +version = "2.2.0" + +[project.entry-points] +pytest11 = {"pytest-bdd" = "pytest_bdd.plugin"} + +[project.optional-dependencies] +allure = [ + "allure-python-commons", + "allure-pytest" +] +full = [ + "pytest-bdd-ng[allure]", + "pytest-bdd-ng[struct-bdd]", + "pytest-bdd-ng[test]", + "pytest-bdd-ng[testtypes]" +] +struct-bdd = [ + "hjson", + "json5", + "pyhocon", + 'tomli;python_version<"3.11.0"', + "PyYAML", + "types-PyYAML" +] +test = [ + "allure-python-commons-test", + "execnet", + "packaging", + "PyHamcrest", + "pytest-httpserver", + "python-coveralls" +] +testenv = [ + "tox~=4.0", + "codecov" +] +testtypes = [ + "mypy", + "types-certifi", + "types-docopt", + "types-setuptools" +] + +[project.scripts] +bdd_tree_to_rst = "pytest_bdd.script.bdd_tree_to_rst:main" + +[project.urls] +Documentation = "https://pytest-bdd-ng.readthedocs.io/en/default/" +Repository = "https://github.com/elchupanebrej/pytest-bdd-ng" + +[tool.black] +line-length = 120 +target-version = ["py39", "py310", "py311", "py312", "py313"] +verbose = true + +[tool.isort] +line_length = 120 +multi_line_output = 3 +profile = "black" + +[tool.mypy] +files = "src/pytest_bdd/**/*.py" +install_types = true +non_interactive = true +plugins = [ + "pydantic.mypy" +] +show_error_codes = true +warn_return_any = true +warn_unused_configs = true + +[[tool.mypy.overrides]] +ignore_missing_imports = true +module = [ + "allure_commons.*", + "allure_pytest.*", + "attr.*", + "ci_environment.*", + "cucumber_expressions.*", + "cucumber_tag_expressions.*", + "decopatch.*", + "execnet.*", + "gherkin.*", + "hjson", + "json5", + "makefun", + "mako.*", + "ordered_set", + "parse", + "parse_type.*", + "pluggy.*", + "_pytest.*", + "pyhocon", + "pytest.*", + "yaml.*" +] From 96163b2a983b1af0a9297b7b38873689856e9341 Mon Sep 17 00:00:00 2001 From: Kostiantyn Goloveshko Date: Mon, 4 Nov 2024 15:07:47 +0200 Subject: [PATCH 3/4] Add simplest scenario example to Readme --- CHANGES.rst | 2 ++ README.rst | 36 +++++++++++++++++++++++++++++++++--- docs/include.rst | 2 +- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 84980018..2e74da9e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -68,9 +68,11 @@ Unreleased ---------- - Implement support of `Markdown `_ using js based parser - Update versions: + - Drop python 3.8 - Add python 3.13 - Drop pytest<5.2 + - Added dummy html reporter - Fixed pytest.ini option "disable_feature_autoload" - Improved fixture injection by adding seamless fixtures on plugin/module collection diff --git a/README.rst b/README.rst index 03cf1df2..aed9c850 100644 --- a/README.rst +++ b/README.rst @@ -93,14 +93,14 @@ Install pytest-bdd-ng pip install pytest-bdd-ng -Install extra packages for parsing Markdown defined features -############################################################ +Packages for parsing Markdown defined features +############################################## .. code-block:: console npm install @cucumber/gherkin -Install extra packages for reporting +Packages for reporting #################################### .. code-block:: console @@ -108,6 +108,36 @@ Install extra packages for reporting npm install @cucumber/html-formatter +TLDR; +----- + +.. code-block:: gherkin + + Feature: Simplest example + Scenario: + # https://cucumber.io/docs/gherkin/reference/ + Given File "Passing.feature" with content: + """gherkin + Feature: Passing feature + Scenario: Passing scenario + * Passing step + """ + # https://docs.pytest.org/en/stable/reference/fixtures.html#conftest-py-sharing-fixtures-across-multiple-files + And File "conftest.py" with content: + """python + from pytest_bdd import step + + @step('Passing step') + def _(): + ... + """ + # https://docs.pytest.org/en/stable/how-to/usage.html + When run pytest + Then pytest outcome must contain tests with statuses: + |passed| + | 1| + + Project layout -------------- **pytest-bdd-ng** automatically collects ``*.feature`` files from pytest_ tests directory. diff --git a/docs/include.rst b/docs/include.rst index 199589a6..2d5cf899 100644 --- a/docs/include.rst +++ b/docs/include.rst @@ -2,5 +2,5 @@ .. include:: features.rst .. include:: ../DOCUMENTATION.rst .. include:: ../AUTHORS.rst -.. include:: ../CHANGES.rst .. include:: ../LICENSE.rst +.. include:: ../CHANGES.rst From 2d9d714ef4c912c8d3ab246d0e4c7f11120b94d1 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:08:28 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/features.rst | 166 +++++++++++++++++++++++----------------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/docs/features.rst b/docs/features.rst index ed5a81d8..7fe413c5 100644 --- a/docs/features.rst +++ b/docs/features.rst @@ -7,99 +7,75 @@ Features -Tutorial --------- +Feature +------- -Launch -###### +Tag conversion +############## -.. include:: ../features/Tutorial/Launch.feature +.. include:: ../features/Feature/Tag conversion.feature :code: gherkin -Step definition ---------------- - -Pytest fixtures substitution -############################ +Tag +### -.. include:: ../features/Step definition/Pytest fixtures substitution.feature +.. include:: ../features/Feature/Tag.feature :code: gherkin -Target fixtures specification -############################# +Description +########### -.. include:: ../features/Step definition/Target fixtures specification.feature +.. include:: ../features/Feature/Description.feature :code: gherkin -Parameters -########## - -Conversion -!!!!!!!!!! +Localization +############ -.. include:: ../features/Step definition/Parameters/Conversion.feature +.. include:: ../features/Feature/Localization.feature :code: gherkin -Defaults -!!!!!!!! - -.. include:: ../features/Step definition/Parameters/Defaults.feature - :code: gherkin +Load +#### -Injection as fixtures -!!!!!!!!!!!!!!!!!!!!! +Autoload +!!!!!!!! -.. include:: ../features/Step definition/Parameters/Injection as fixtures.feature +.. include:: ../features/Feature/Load/Autoload.feature :code: gherkin -Parsing by custom parser +Scenario function loader !!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Step definition/Parameters/Parsing by custom parser.feature +.. include:: ../features/Feature/Load/Scenario function loader.feature :code: gherkin -Parsing -!!!!!!! +Scenario search from base directory +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Step definition/Parameters/Parsing.feature +.. include:: ../features/Feature/Load/Scenario search from base directory.feature :code: gherkin -Step ----- - -Data table -########## +Scenario search from base url +!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Step/Data table.feature +.. include:: ../features/Feature/Load/Scenario search from base url.feature :code: gherkin -Doc string -########## - -.. include:: ../features/Step/Doc string.feature - :code: gherkin +Scenario +-------- -Step definition bounding -######################## +Tag +### -.. include:: ../features/Step/Step definition bounding.feature +.. include:: ../features/Scenario/Tag.feature :code: gherkin -Scenario --------- - Description ########### .. include:: ../features/Scenario/Description.feature :code: gherkin -Tag -### - -.. include:: ../features/Scenario/Tag.feature - :code: gherkin - Outline ####### @@ -118,56 +94,80 @@ Gathering .. include:: ../features/Report/Gathering.feature :code: gherkin -Feature -------- +Tutorial +-------- -Description -########### +Launch +###### -.. include:: ../features/Feature/Description.feature +.. include:: ../features/Tutorial/Launch.feature :code: gherkin -Localization -############ +Step +---- -.. include:: ../features/Feature/Localization.feature +Data table +########## + +.. include:: ../features/Step/Data table.feature :code: gherkin -Tag conversion -############## +Step definition bounding +######################## -.. include:: ../features/Feature/Tag conversion.feature +.. include:: ../features/Step/Step definition bounding.feature :code: gherkin -Tag -### +Doc string +########## -.. include:: ../features/Feature/Tag.feature +.. include:: ../features/Step/Doc string.feature :code: gherkin -Load -#### +Step definition +--------------- -Autoload -!!!!!!!! +Target fixtures specification +############################# -.. include:: ../features/Feature/Load/Autoload.feature +.. include:: ../features/Step definition/Target fixtures specification.feature :code: gherkin -Scenario function loader +Pytest fixtures substitution +############################ + +.. include:: ../features/Step definition/Pytest fixtures substitution.feature + :code: gherkin + +Parameters +########## + +Injection as fixtures +!!!!!!!!!!!!!!!!!!!!! + +.. include:: ../features/Step definition/Parameters/Injection as fixtures.feature + :code: gherkin + +Parsing +!!!!!!! + +.. include:: ../features/Step definition/Parameters/Parsing.feature + :code: gherkin + +Parsing by custom parser !!!!!!!!!!!!!!!!!!!!!!!! -.. include:: ../features/Feature/Load/Scenario function loader.feature +.. include:: ../features/Step definition/Parameters/Parsing by custom parser.feature :code: gherkin -Scenario search from base directory -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Conversion +!!!!!!!!!! -.. include:: ../features/Feature/Load/Scenario search from base directory.feature +.. include:: ../features/Step definition/Parameters/Conversion.feature :code: gherkin -Scenario search from base url -!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Defaults +!!!!!!!! -.. include:: ../features/Feature/Load/Scenario search from base url.feature +.. include:: ../features/Step definition/Parameters/Defaults.feature :code: gherkin