--- Begin Message ---
Source: pytest-bdd
Version: 5.0.0-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20221220 ftbfs-bookworm
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> dh_auto_install
> I: pybuild base:240: /usr/bin/python3.11 setup.py install --root
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd
> running install
> /usr/lib/python3/dist-packages/setuptools/command/install.py:34:
> SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and
> pip and other standards-based tools.
> warnings.warn(
> running build
> running build_py
> running egg_info
> writing pytest_bdd.egg-info/PKG-INFO
> writing dependency_links to pytest_bdd.egg-info/dependency_links.txt
> writing entry points to pytest_bdd.egg-info/entry_points.txt
> writing requirements to pytest_bdd.egg-info/requires.txt
> writing top-level names to pytest_bdd.egg-info/top_level.txt
> reading manifest file 'pytest_bdd.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE.txt'
> adding license file 'AUTHORS.rst'
> writing manifest file 'pytest_bdd.egg-info/SOURCES.txt'
> /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202:
> SetuptoolsDeprecationWarning: Installing 'pytest_bdd.templates' as data
> is deprecated, please list it in `packages`.
> !!
>
>
> ############################
> # Package would be ignored #
> ############################
> Python recognizes 'pytest_bdd.templates' as an importable package,
> but it is not listed in the `packages` configuration of setuptools.
>
> 'pytest_bdd.templates' has been automatically added to the distribution
> only
> because it may contain data files, but this behavior is likely to change
> in future versions of setuptools (and therefore is considered deprecated).
>
> Please make sure that 'pytest_bdd.templates' is included as a package by
> using
> the `packages` configuration field or the proper discovery methods
> (for example by using `find_namespace_packages(...)`/`find_namespace:`
> instead of `find_packages(...)`/`find:`).
>
> You can read more about "package discovery" and "data files" on setuptools
> documentation page.
>
>
> !!
>
> check.warn(importable)
> running install_lib
> creating /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr
> creating /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib
> creating /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11
> creating
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages
> creating
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/__init__.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/parser.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/cucumber_json.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/hooks.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/exceptions.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/gherkin_terminal_reporter.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/feature.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/reporting.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/scripts.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> creating
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/templates
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/templates/test.py.mak
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/templates
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/scenario.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/generation.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/steps.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/plugin.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/types.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/parsers.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pytest-bdd/build/pytest_bdd/utils.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/__init__.py
> to __init__.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/parser.py
> to parser.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/cucumber_json.py
> to cucumber_json.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/hooks.py
> to hooks.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/exceptions.py
> to exceptions.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/gherkin_terminal_reporter.py
> to gherkin_terminal_reporter.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py
> to feature.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/reporting.py
> to reporting.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scripts.py
> to scripts.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py
> to scenario.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/generation.py
> to generation.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/steps.py
> to steps.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/plugin.py
> to plugin.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/types.py
> to types.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/parsers.py
> to parsers.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/utils.py
> to utils.cpython-311.pyc
> running install_egg_info
> Copying pytest_bdd.egg-info to
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd-5.0.0.egg-info
> Skipping SOURCES.txt
> running install_scripts
> Installing pytest-bdd script to
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/bin
> I: pybuild base:240: /usr/bin/python3 setup.py install --root
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd
> running install
> /usr/lib/python3/dist-packages/setuptools/command/install.py:34:
> SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and
> pip and other standards-based tools.
> warnings.warn(
> running build
> running build_py
> running egg_info
> writing pytest_bdd.egg-info/PKG-INFO
> writing dependency_links to pytest_bdd.egg-info/dependency_links.txt
> writing entry points to pytest_bdd.egg-info/entry_points.txt
> writing requirements to pytest_bdd.egg-info/requires.txt
> writing top-level names to pytest_bdd.egg-info/top_level.txt
> reading manifest file 'pytest_bdd.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE.txt'
> adding license file 'AUTHORS.rst'
> writing manifest file 'pytest_bdd.egg-info/SOURCES.txt'
> /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202:
> SetuptoolsDeprecationWarning: Installing 'pytest_bdd.templates' as data
> is deprecated, please list it in `packages`.
> !!
>
>
> ############################
> # Package would be ignored #
> ############################
> Python recognizes 'pytest_bdd.templates' as an importable package,
> but it is not listed in the `packages` configuration of setuptools.
>
> 'pytest_bdd.templates' has been automatically added to the distribution
> only
> because it may contain data files, but this behavior is likely to change
> in future versions of setuptools (and therefore is considered deprecated).
>
> Please make sure that 'pytest_bdd.templates' is included as a package by
> using
> the `packages` configuration field or the proper discovery methods
> (for example by using `find_namespace_packages(...)`/`find_namespace:`
> instead of `find_packages(...)`/`find:`).
>
> You can read more about "package discovery" and "data files" on setuptools
> documentation page.
>
>
> !!
>
> check.warn(importable)
> running install_lib
> creating /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10
> creating
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages
> creating
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/__init__.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/parser.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/cucumber_json.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/hooks.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/exceptions.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/gherkin_terminal_reporter.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/feature.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/reporting.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/scripts.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> creating
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/templates
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/templates/test.py.mak
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/templates
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/scenario.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/generation.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/steps.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/plugin.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/types.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/parsers.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> copying
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_pytest-bdd/build/pytest_bdd/utils.py
> ->
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/__init__.py
> to __init__.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/parser.py
> to parser.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/cucumber_json.py
> to cucumber_json.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/hooks.py
> to hooks.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/exceptions.py
> to exceptions.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/gherkin_terminal_reporter.py
> to gherkin_terminal_reporter.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/feature.py
> to feature.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/reporting.py
> to reporting.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/scripts.py
> to scripts.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/scenario.py
> to scenario.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/generation.py
> to generation.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/steps.py
> to steps.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/plugin.py
> to plugin.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/types.py
> to types.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/parsers.py
> to parsers.cpython-310.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd/utils.py
> to utils.cpython-310.pyc
> running install_egg_info
> Copying pytest_bdd.egg-info to
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.10/dist-packages/pytest_bdd-5.0.0.egg-info
> Skipping SOURCES.txt
> running install_scripts
> Installing pytest-bdd script to
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/bin
> dh_auto_test -- --system=custom --test-args="{interpreter} -m pytest -k 'not
> test_generate_with_quotes and not test_unicode_characters'"
> I: pybuild base:240: python3.11 -m pytest -k 'not test_generate_with_quotes
> and not test_unicode_characters'
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /<<PKGBUILDDIR>>, configfile: pytest.ini, testpaths: tests
> plugins: bdd-5.0.0
> collected 115 items / 2 deselected / 113 selected
>
> tests/test_hooks.py .. [
> 1%]
> tests/args/test_arg_fixture_mix.py . [
> 2%]
> tests/args/cfparse/test_args.py .. [
> 4%]
> tests/args/parse/test_args.py .. [
> 6%]
> tests/args/regex/test_args.py .. [
> 7%]
> tests/feature/test_alias.py . [
> 8%]
> tests/feature/test_background.py .. [
> 10%]
> tests/feature/test_cucumber_json.py . [
> 11%]
> tests/feature/test_description.py . [
> 12%]
> tests/feature/test_feature_base_dir.py ...... [
> 17%]
> tests/feature/test_gherkin_terminal_reporter.py ....FFF..... [
> 28%]
> tests/feature/test_multiline.py ..... [
> 32%]
> tests/feature/test_no_scenario.py F [
> 33%]
> tests/feature/test_no_sctrict_gherkin.py .. [
> 35%]
> tests/feature/test_outline.py ........ [
> 42%]
> tests/feature/test_outline_empty_values.py .. [
> 44%]
> tests/feature/test_parametrized.py . [
> 45%]
> tests/feature/test_report.py .s [
> 46%]
> tests/feature/test_same_function_name.py . [
> 47%]
> tests/feature/test_scenario.py ............. [
> 59%]
> tests/feature/test_scenarios.py FFFFFFFF [
> 66%]
> tests/feature/test_steps.py ........ [
> 73%]
> tests/feature/test_tags.py ............ [
> 84%]
> tests/feature/test_wrong.py . [
> 84%]
> tests/generation/test_generate_missing.py ... [
> 87%]
> tests/library/test_parent.py .... [
> 91%]
> tests/scripts/test_generate.py . [
> 92%]
> tests/scripts/test_main.py . [
> 92%]
> tests/scripts/test_migrate.py F [
> 93%]
> tests/steps/test_given.py . [
> 94%]
> tests/steps/test_steps.py .... [
> 98%]
> tests/steps/test_unicode.py ..
> [100%]
>
> =================================== FAILURES
> ===================================
> ____________________ test_error_message_for_missing_steps[]
> ____________________
>
> testdir = <Testdir
> local('/tmp/pytest-of-user42/pytest-2/test_error_message_for_missing_steps0')>
> verbosity = ''
>
> @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"])
> def test_error_message_for_missing_steps(testdir, verbosity):
> testdir.makefile(".feature", test=FEATURE)
> testdir.makepyfile(
> textwrap.dedent(
> """\
> from pytest_bdd import scenarios
>
> scenarios('.')
> """
> )
> )
> result = testdir.runpytest("--gherkin-terminal-reporter", verbosity)
> > result.assert_outcomes(passed=0, failed=1)
> E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors':
> 0,...pped': 0, ...}
> E Omitting 4 identical items, use -vv to show
> E Differing items:
> E {'errors': 1} != {'errors': 0}
> E {'failed': 0} != {'failed': 1}
> E Use -v to get more diff
>
> /<<PKGBUILDDIR>>/tests/feature/test_gherkin_terminal_reporter.py:107:
> AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /tmp/pytest-of-user42/pytest-2/test_error_message_for_missing_steps0
> plugins: bdd-5.0.0
> collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ___________ ERROR collecting test_error_message_for_missing_steps.py
> ___________
> test_error_message_for_missing_steps.py:3: in <module>
> scenarios('.')
> /<<PKGBUILDDIR>>/pytest_bdd/scenario.py:322: in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:72: in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:68: in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_error_message_for_missing_steps.py - re.error: global flags not
> at...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.09s
> ===============================
> ___________________ test_error_message_for_missing_steps[-v]
> ___________________
>
> testdir = <Testdir
> local('/tmp/pytest-of-user42/pytest-2/test_error_message_for_missing_steps1')>
> verbosity = '-v'
>
> @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"])
> def test_error_message_for_missing_steps(testdir, verbosity):
> testdir.makefile(".feature", test=FEATURE)
> testdir.makepyfile(
> textwrap.dedent(
> """\
> from pytest_bdd import scenarios
>
> scenarios('.')
> """
> )
> )
> result = testdir.runpytest("--gherkin-terminal-reporter", verbosity)
> > result.assert_outcomes(passed=0, failed=1)
> E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors':
> 0,...pped': 0, ...}
> E Omitting 4 identical items, use -vv to show
> E Differing items:
> E {'errors': 1} != {'errors': 0}
> E {'failed': 0} != {'failed': 1}
> E Use -v to get more diff
>
> /<<PKGBUILDDIR>>/tests/feature/test_gherkin_terminal_reporter.py:107:
> AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack --
> /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /tmp/pytest-of-user42/pytest-2/test_error_message_for_missing_steps1
> plugins: bdd-5.0.0
> collecting ... collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ___________ ERROR collecting test_error_message_for_missing_steps.py
> ___________
> test_error_message_for_missing_steps.py:3: in <module>
> scenarios('.')
> /<<PKGBUILDDIR>>/pytest_bdd/scenario.py:322: in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:72: in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:68: in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_error_message_for_missing_steps.py - re.error: global flags not
> at...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.12s
> ===============================
> __________________ test_error_message_for_missing_steps[-vv]
> ___________________
>
> testdir = <Testdir
> local('/tmp/pytest-of-user42/pytest-2/test_error_message_for_missing_steps2')>
> verbosity = '-vv'
>
> @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"])
> def test_error_message_for_missing_steps(testdir, verbosity):
> testdir.makefile(".feature", test=FEATURE)
> testdir.makepyfile(
> textwrap.dedent(
> """\
> from pytest_bdd import scenarios
>
> scenarios('.')
> """
> )
> )
> result = testdir.runpytest("--gherkin-terminal-reporter", verbosity)
> > result.assert_outcomes(passed=0, failed=1)
> E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors':
> 0,...pped': 0, ...}
> E Omitting 4 identical items, use -vv to show
> E Differing items:
> E {'errors': 1} != {'errors': 0}
> E {'failed': 0} != {'failed': 1}
> E Use -v to get more diff
>
> /<<PKGBUILDDIR>>/tests/feature/test_gherkin_terminal_reporter.py:107:
> AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack --
> /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /tmp/pytest-of-user42/pytest-2/test_error_message_for_missing_steps2
> plugins: bdd-5.0.0
> collecting ... collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ___________ ERROR collecting test_error_message_for_missing_steps.py
> ___________
> test_error_message_for_missing_steps.py:3: in <module>
> scenarios('.')
> /<<PKGBUILDDIR>>/pytest_bdd/scenario.py:322: in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:72: in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:68: in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_error_message_for_missing_steps.py - re.error: global flags not
> at...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.09s
> ===============================
> ______________________________ test_no_scenarios
> _______________________________
>
> testdir = <Testdir local('/tmp/pytest-of-user42/pytest-2/test_no_scenarios0')>
>
> def test_no_scenarios(testdir):
> """Test no scenarios defined in the feature file."""
> features = testdir.mkdir("features")
> features.join("test.feature").write_text(
> textwrap.dedent(
> """
> Given foo
> When bar
> Then baz
> """
> ),
> "utf-8",
> ensure=True,
> )
> testdir.makepyfile(
> textwrap.dedent(
> """
>
> from pytest_bdd import scenarios
>
> scenarios('features')
> """
> )
> )
> result = testdir.runpytest()
> > result.stdout.fnmatch_lines(["*FeatureError: Step definition outside
> > of a Scenario or a Background.*"])
> E Failed: nomatch: '*FeatureError: Step definition outside of a
> Scenario or a Background.*'
> E and: '============================= test session starts
> =============================='
> E and: 'platform linux -- Python 3.11.1, pytest-7.2.0,
> pluggy-1.0.0+repack'
> E and: 'rootdir: /tmp/pytest-of-user42/pytest-2/test_no_scenarios0'
> E and: 'plugins: bdd-5.0.0'
> E and: 'collected 0 items / 1 error'
> E and: ''
> E and: '==================================== ERRORS
> ===================================='
> E and: '____________________ ERROR collecting test_no_scenarios.py
> _____________________'
> E and: 'test_no_scenarios.py:3: in <module>'
> E and: " scenarios('features')"
> E and: '/<<PKGBUILDDIR>>/pytest_bdd/scenario.py:322: in scenarios'
> E and: ' for feature in get_features(abs_feature_paths):'
> E and: '/<<PKGBUILDDIR>>/pytest_bdd/feature.py:72: in get_features'
> E and: '
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))'
> E and: '/<<PKGBUILDDIR>>/pytest_bdd/feature.py:68: in get_features'
> E and: ' for path in paths:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob'
> E and: ' for dirname, dir_groups in dirs:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob'
> E and: ' for name, groups in self.resolve_pattern('
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:177: in
> resolve_pattern'
> E and: ' return fnmatch.filter(names, pattern)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in
> filter'
> E and: ' match = _compile_pattern(pat)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in
> _compile_pattern'
> E and: ' return re.compile(res).match'
> E and: '/usr/lib/python3.11/re/__init__.py:227: in compile'
> E and: ' return _compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/__init__.py:294: in _compile'
> E and: ' p = _compiler.compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/_compiler.py:743: in compile'
> E and: ' p = _parser.parse(p, flags)'
> E and: '/usr/lib/python3.11/re/_parser.py:980: in parse'
> E and: ' p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE,
> 0)'
> E and: '/usr/lib/python3.11/re/_parser.py:455: in _parse_sub'
> E and: ' itemsappend(_parse(source, state, verbose, nested + 1,'
> E and: '/usr/lib/python3.11/re/_parser.py:841: in _parse'
> E and: " raise source.error('global flags not at the start '"
> E and: 'E re.error: global flags not at the start of the
> expression at position 6'
> E and: '=========================== short test summary info
> ============================'
> E and: 'ERROR test_no_scenarios.py - re.error: global flags not at
> the start of the e...'
> E and: '!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!'
> E and: '=============================== 1 error in 0.09s
> ==============================='
> E remains unmatched: '*FeatureError: Step definition outside of a
> Scenario or a Background.*'
>
> /<<PKGBUILDDIR>>/tests/feature/test_no_scenario.py:31: Failed
> ----------------------------- Captured stdout call
> -----------------------------
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /tmp/pytest-of-user42/pytest-2/test_no_scenarios0
> plugins: bdd-5.0.0
> collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ____________________ ERROR collecting test_no_scenarios.py
> _____________________
> test_no_scenarios.py:3: in <module>
> scenarios('features')
> /<<PKGBUILDDIR>>/pytest_bdd/scenario.py:322: in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:72: in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/pytest_bdd/feature.py:68: in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_no_scenarios.py - re.error: global flags not at the start of the
> e...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.09s
> ===============================
> ________________________ test_scenarios[no-import-mode]
> ________________________
>
> testdir = <Testdir local('/tmp/pytest-of-user42/pytest-2/test_scenarios0')>
> pytest_params = []
>
> def test_scenarios(testdir, pytest_params):
> """Test scenarios shortcut (used together with @scenario for
> individual test override)."""
> testdir.makeini(
> """
> [pytest]
> console_output_style=classic
> """
> )
> testdir.makeconftest(
> """
> import pytest
> from pytest_bdd import given
>
> @given('I have a bar')
> def i_have_bar():
> print('bar!')
> return 'bar'
> """
> )
> features = testdir.mkdir("features")
> features.join("test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> features.join("subfolder", "test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test subfolder scenario
> Given I have a bar
>
> Scenario: Test failing subfolder scenario
> Given I have a failing bar
>
> Scenario: Test already bound scenario
> Given I have a bar
>
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios, scenario
>
> @scenario('features/subfolder/test.feature', 'Test already bound
> scenario')
> def test_already_bound():
> pass
>
> scenarios('features')
> """
> )
> result = testdir.runpytest_subprocess("-v", "-s", *pytest_params)
> > assert_outcomes(result, passed=4, failed=1)
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:69:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> result = <RunResult ret=2 len(stdout.lines)=44 len(stderr.lines)=0
> duration=0.34s>
> passed = 4, skipped = 0, failed = 1, errors = 0, xpassed = 0, xfailed = 0
>
> def assert_outcomes(
> result,
> passed=0,
> skipped=0,
> failed=0,
> errors=0,
> xpassed=0,
> xfailed=0,
> ):
> """Compatibility function for result.assert_outcomes"""
> > return result.assert_outcomes(
> errors=errors, passed=passed, skipped=skipped, failed=failed,
> xpassed=xpassed, xfailed=xfailed
> )
> E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors':
> 0,...pped': 0, ...}
> E Omitting 3 identical items, use -vv to show
> E Differing items:
> E {'errors': 1} != {'errors': 0}
> E {'passed': 0} != {'passed': 4}
> E {'failed': 0} != {'failed': 1}
> E Use -v to get more diff
>
> /<<PKGBUILDDIR>>/tests/utils.py:20: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios0/runpytest-0 -v -s
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios0
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack --
> /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios0, configfile: tox.ini
> plugins: bdd-5.0.0
> collecting ... collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ______________________ ERROR collecting test_scenarios.py
> ______________________
> test_scenarios.py:8: in <module>
> scenarios('features')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios.py - re.error: global flags not at the start of the
> expr...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.12s
> ===============================
> ____________________ test_scenarios[--import-mode=prepend]
> _____________________
>
> testdir = <Testdir local('/tmp/pytest-of-user42/pytest-2/test_scenarios1')>
> pytest_params = ['--import-mode=prepend']
>
> def test_scenarios(testdir, pytest_params):
> """Test scenarios shortcut (used together with @scenario for
> individual test override)."""
> testdir.makeini(
> """
> [pytest]
> console_output_style=classic
> """
> )
> testdir.makeconftest(
> """
> import pytest
> from pytest_bdd import given
>
> @given('I have a bar')
> def i_have_bar():
> print('bar!')
> return 'bar'
> """
> )
> features = testdir.mkdir("features")
> features.join("test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> features.join("subfolder", "test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test subfolder scenario
> Given I have a bar
>
> Scenario: Test failing subfolder scenario
> Given I have a failing bar
>
> Scenario: Test already bound scenario
> Given I have a bar
>
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios, scenario
>
> @scenario('features/subfolder/test.feature', 'Test already bound
> scenario')
> def test_already_bound():
> pass
>
> scenarios('features')
> """
> )
> result = testdir.runpytest_subprocess("-v", "-s", *pytest_params)
> > assert_outcomes(result, passed=4, failed=1)
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:69:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> result = <RunResult ret=2 len(stdout.lines)=44 len(stderr.lines)=0
> duration=0.37s>
> passed = 4, skipped = 0, failed = 1, errors = 0, xpassed = 0, xfailed = 0
>
> def assert_outcomes(
> result,
> passed=0,
> skipped=0,
> failed=0,
> errors=0,
> xpassed=0,
> xfailed=0,
> ):
> """Compatibility function for result.assert_outcomes"""
> > return result.assert_outcomes(
> errors=errors, passed=passed, skipped=skipped, failed=failed,
> xpassed=xpassed, xfailed=xfailed
> )
> E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors':
> 0,...pped': 0, ...}
> E Omitting 3 identical items, use -vv to show
> E Differing items:
> E {'errors': 1} != {'errors': 0}
> E {'passed': 0} != {'passed': 4}
> E {'failed': 0} != {'failed': 1}
> E Use -v to get more diff
>
> /<<PKGBUILDDIR>>/tests/utils.py:20: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios1/runpytest-0 -v -s
> --import-mode=prepend
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios1
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack --
> /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios1, configfile: tox.ini
> plugins: bdd-5.0.0
> collecting ... collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ______________________ ERROR collecting test_scenarios.py
> ______________________
> test_scenarios.py:8: in <module>
> scenarios('features')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios.py - re.error: global flags not at the start of the
> expr...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.12s
> ===============================
> _____________________ test_scenarios[--import-mode=append]
> _____________________
>
> testdir = <Testdir local('/tmp/pytest-of-user42/pytest-2/test_scenarios2')>
> pytest_params = ['--import-mode=append']
>
> def test_scenarios(testdir, pytest_params):
> """Test scenarios shortcut (used together with @scenario for
> individual test override)."""
> testdir.makeini(
> """
> [pytest]
> console_output_style=classic
> """
> )
> testdir.makeconftest(
> """
> import pytest
> from pytest_bdd import given
>
> @given('I have a bar')
> def i_have_bar():
> print('bar!')
> return 'bar'
> """
> )
> features = testdir.mkdir("features")
> features.join("test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> features.join("subfolder", "test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test subfolder scenario
> Given I have a bar
>
> Scenario: Test failing subfolder scenario
> Given I have a failing bar
>
> Scenario: Test already bound scenario
> Given I have a bar
>
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios, scenario
>
> @scenario('features/subfolder/test.feature', 'Test already bound
> scenario')
> def test_already_bound():
> pass
>
> scenarios('features')
> """
> )
> result = testdir.runpytest_subprocess("-v", "-s", *pytest_params)
> > assert_outcomes(result, passed=4, failed=1)
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:69:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> result = <RunResult ret=2 len(stdout.lines)=44 len(stderr.lines)=0
> duration=0.35s>
> passed = 4, skipped = 0, failed = 1, errors = 0, xpassed = 0, xfailed = 0
>
> def assert_outcomes(
> result,
> passed=0,
> skipped=0,
> failed=0,
> errors=0,
> xpassed=0,
> xfailed=0,
> ):
> """Compatibility function for result.assert_outcomes"""
> > return result.assert_outcomes(
> errors=errors, passed=passed, skipped=skipped, failed=failed,
> xpassed=xpassed, xfailed=xfailed
> )
> E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors':
> 0,...pped': 0, ...}
> E Omitting 3 identical items, use -vv to show
> E Differing items:
> E {'errors': 1} != {'errors': 0}
> E {'passed': 0} != {'passed': 4}
> E {'failed': 0} != {'failed': 1}
> E Use -v to get more diff
>
> /<<PKGBUILDDIR>>/tests/utils.py:20: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios2/runpytest-0 -v -s
> --import-mode=append
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios2
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack --
> /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios2, configfile: tox.ini
> plugins: bdd-5.0.0
> collecting ... collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ______________________ ERROR collecting test_scenarios.py
> ______________________
> test_scenarios.py:8: in <module>
> scenarios('features')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios.py - re.error: global flags not at the start of the
> expr...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.12s
> ===============================
> ___________________ test_scenarios[--import-mode=importlib]
> ____________________
>
> testdir = <Testdir local('/tmp/pytest-of-user42/pytest-2/test_scenarios3')>
> pytest_params = ['--import-mode=importlib']
>
> def test_scenarios(testdir, pytest_params):
> """Test scenarios shortcut (used together with @scenario for
> individual test override)."""
> testdir.makeini(
> """
> [pytest]
> console_output_style=classic
> """
> )
> testdir.makeconftest(
> """
> import pytest
> from pytest_bdd import given
>
> @given('I have a bar')
> def i_have_bar():
> print('bar!')
> return 'bar'
> """
> )
> features = testdir.mkdir("features")
> features.join("test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> features.join("subfolder", "test.feature").write_text(
> textwrap.dedent(
> """
> Scenario: Test subfolder scenario
> Given I have a bar
>
> Scenario: Test failing subfolder scenario
> Given I have a failing bar
>
> Scenario: Test already bound scenario
> Given I have a bar
>
> Scenario: Test scenario
> Given I have a bar
> """
> ),
> "utf-8",
> ensure=True,
> )
> testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios, scenario
>
> @scenario('features/subfolder/test.feature', 'Test already bound
> scenario')
> def test_already_bound():
> pass
>
> scenarios('features')
> """
> )
> result = testdir.runpytest_subprocess("-v", "-s", *pytest_params)
> > assert_outcomes(result, passed=4, failed=1)
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:69:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> result = <RunResult ret=2 len(stdout.lines)=44 len(stderr.lines)=0
> duration=0.33s>
> passed = 4, skipped = 0, failed = 1, errors = 0, xpassed = 0, xfailed = 0
>
> def assert_outcomes(
> result,
> passed=0,
> skipped=0,
> failed=0,
> errors=0,
> xpassed=0,
> xfailed=0,
> ):
> """Compatibility function for result.assert_outcomes"""
> > return result.assert_outcomes(
> errors=errors, passed=passed, skipped=skipped, failed=failed,
> xpassed=xpassed, xfailed=xfailed
> )
> E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors':
> 0,...pped': 0, ...}
> E Omitting 3 identical items, use -vv to show
> E Differing items:
> E {'errors': 1} != {'errors': 0}
> E {'passed': 0} != {'passed': 4}
> E {'failed': 0} != {'failed': 1}
> E Use -v to get more diff
>
> /<<PKGBUILDDIR>>/tests/utils.py:20: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios3/runpytest-0 -v -s
> --import-mode=importlib
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios3
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack --
> /usr/bin/python3.11
> cachedir: .pytest_cache
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios3, configfile: tox.ini
> plugins: bdd-5.0.0
> collecting ... collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ______________________ ERROR collecting test_scenarios.py
> ______________________
> test_scenarios.py:8: in <module>
> scenarios('features')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios.py - re.error: global flags not at the start of the
> expr...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.11s
> ===============================
> __________________ test_scenarios_none_found[no-import-mode]
> ___________________
>
> testdir = <Testdir
> local('/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found0')>
> pytest_params = []
>
> def test_scenarios_none_found(testdir, pytest_params):
> """Test scenarios shortcut when no scenarios found."""
> testpath = testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios
>
> scenarios('.')
> """
> )
> result = testdir.runpytest_subprocess(testpath, *pytest_params)
> assert_outcomes(result, errors=1)
> > result.stdout.fnmatch_lines(["*NoScenariosFound*"])
> E Failed: nomatch: '*NoScenariosFound*'
> E and: '============================= test session starts
> =============================='
> E and: 'platform linux -- Python 3.11.1, pytest-7.2.0,
> pluggy-1.0.0+repack'
> E and: 'rootdir:
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found0'
> E and: 'plugins: bdd-5.0.0'
> E and: 'collected 0 items / 1 error'
> E and: ''
> E and: '==================================== ERRORS
> ===================================='
> E and: '________________ ERROR collecting
> test_scenarios_none_found.py _________________'
> E and: 'test_scenarios_none_found.py:4: in <module>'
> E and: " scenarios('.')"
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios'
> E and: ' for feature in get_features(abs_feature_paths):'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features'
> E and: '
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features'
> E and: ' for path in paths:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob'
> E and: ' for dirname, dir_groups in dirs:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob'
> E and: ' for name, groups in self.resolve_pattern('
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:177: in
> resolve_pattern'
> E and: ' return fnmatch.filter(names, pattern)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in
> filter'
> E and: ' match = _compile_pattern(pat)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in
> _compile_pattern'
> E and: ' return re.compile(res).match'
> E and: '/usr/lib/python3.11/re/__init__.py:227: in compile'
> E and: ' return _compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/__init__.py:294: in _compile'
> E and: ' p = _compiler.compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/_compiler.py:743: in compile'
> E and: ' p = _parser.parse(p, flags)'
> E and: '/usr/lib/python3.11/re/_parser.py:980: in parse'
> E and: ' p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE,
> 0)'
> E and: '/usr/lib/python3.11/re/_parser.py:455: in _parse_sub'
> E and: ' itemsappend(_parse(source, state, verbose, nested + 1,'
> E and: '/usr/lib/python3.11/re/_parser.py:841: in _parse'
> E and: " raise source.error('global flags not at the start '"
> E and: 'E re.error: global flags not at the start of the
> expression at position 6'
> E and: '=========================== short test summary info
> ============================'
> E and: 'ERROR test_scenarios_none_found.py - re.error: global flags
> not at the start ...'
> E and: '!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!'
> E and: '=============================== 1 error in 0.13s
> ==============================='
> E remains unmatched: '*NoScenariosFound*'
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:90: Failed
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found0/runpytest-0
>
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found0/test_scenarios_none_found.py
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found0
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found0
> plugins: bdd-5.0.0
> collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ________________ ERROR collecting test_scenarios_none_found.py
> _________________
> test_scenarios_none_found.py:4: in <module>
> scenarios('.')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios_none_found.py - re.error: global flags not at the start
> ...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.13s
> ===============================
> _______________ test_scenarios_none_found[--import-mode=prepend]
> _______________
>
> testdir = <Testdir
> local('/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found1')>
> pytest_params = ['--import-mode=prepend']
>
> def test_scenarios_none_found(testdir, pytest_params):
> """Test scenarios shortcut when no scenarios found."""
> testpath = testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios
>
> scenarios('.')
> """
> )
> result = testdir.runpytest_subprocess(testpath, *pytest_params)
> assert_outcomes(result, errors=1)
> > result.stdout.fnmatch_lines(["*NoScenariosFound*"])
> E Failed: nomatch: '*NoScenariosFound*'
> E and: '============================= test session starts
> =============================='
> E and: 'platform linux -- Python 3.11.1, pytest-7.2.0,
> pluggy-1.0.0+repack'
> E and: 'rootdir:
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found1'
> E and: 'plugins: bdd-5.0.0'
> E and: 'collected 0 items / 1 error'
> E and: ''
> E and: '==================================== ERRORS
> ===================================='
> E and: '________________ ERROR collecting
> test_scenarios_none_found.py _________________'
> E and: 'test_scenarios_none_found.py:4: in <module>'
> E and: " scenarios('.')"
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios'
> E and: ' for feature in get_features(abs_feature_paths):'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features'
> E and: '
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features'
> E and: ' for path in paths:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob'
> E and: ' for dirname, dir_groups in dirs:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob'
> E and: ' for name, groups in self.resolve_pattern('
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:177: in
> resolve_pattern'
> E and: ' return fnmatch.filter(names, pattern)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in
> filter'
> E and: ' match = _compile_pattern(pat)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in
> _compile_pattern'
> E and: ' return re.compile(res).match'
> E and: '/usr/lib/python3.11/re/__init__.py:227: in compile'
> E and: ' return _compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/__init__.py:294: in _compile'
> E and: ' p = _compiler.compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/_compiler.py:743: in compile'
> E and: ' p = _parser.parse(p, flags)'
> E and: '/usr/lib/python3.11/re/_parser.py:980: in parse'
> E and: ' p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE,
> 0)'
> E and: '/usr/lib/python3.11/re/_parser.py:455: in _parse_sub'
> E and: ' itemsappend(_parse(source, state, verbose, nested + 1,'
> E and: '/usr/lib/python3.11/re/_parser.py:841: in _parse'
> E and: " raise source.error('global flags not at the start '"
> E and: 'E re.error: global flags not at the start of the
> expression at position 6'
> E and: '=========================== short test summary info
> ============================'
> E and: 'ERROR test_scenarios_none_found.py - re.error: global flags
> not at the start ...'
> E and: '!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!'
> E and: '=============================== 1 error in 0.11s
> ==============================='
> E remains unmatched: '*NoScenariosFound*'
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:90: Failed
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found1/runpytest-0
>
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found1/test_scenarios_none_found.py
> --import-mode=prepend
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found1
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found1
> plugins: bdd-5.0.0
> collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ________________ ERROR collecting test_scenarios_none_found.py
> _________________
> test_scenarios_none_found.py:4: in <module>
> scenarios('.')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios_none_found.py - re.error: global flags not at the start
> ...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.11s
> ===============================
> _______________ test_scenarios_none_found[--import-mode=append]
> ________________
>
> testdir = <Testdir
> local('/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found2')>
> pytest_params = ['--import-mode=append']
>
> def test_scenarios_none_found(testdir, pytest_params):
> """Test scenarios shortcut when no scenarios found."""
> testpath = testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios
>
> scenarios('.')
> """
> )
> result = testdir.runpytest_subprocess(testpath, *pytest_params)
> assert_outcomes(result, errors=1)
> > result.stdout.fnmatch_lines(["*NoScenariosFound*"])
> E Failed: nomatch: '*NoScenariosFound*'
> E and: '============================= test session starts
> =============================='
> E and: 'platform linux -- Python 3.11.1, pytest-7.2.0,
> pluggy-1.0.0+repack'
> E and: 'rootdir:
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found2'
> E and: 'plugins: bdd-5.0.0'
> E and: 'collected 0 items / 1 error'
> E and: ''
> E and: '==================================== ERRORS
> ===================================='
> E and: '________________ ERROR collecting
> test_scenarios_none_found.py _________________'
> E and: 'test_scenarios_none_found.py:4: in <module>'
> E and: " scenarios('.')"
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios'
> E and: ' for feature in get_features(abs_feature_paths):'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features'
> E and: '
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features'
> E and: ' for path in paths:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob'
> E and: ' for dirname, dir_groups in dirs:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob'
> E and: ' for name, groups in self.resolve_pattern('
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:177: in
> resolve_pattern'
> E and: ' return fnmatch.filter(names, pattern)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in
> filter'
> E and: ' match = _compile_pattern(pat)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in
> _compile_pattern'
> E and: ' return re.compile(res).match'
> E and: '/usr/lib/python3.11/re/__init__.py:227: in compile'
> E and: ' return _compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/__init__.py:294: in _compile'
> E and: ' p = _compiler.compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/_compiler.py:743: in compile'
> E and: ' p = _parser.parse(p, flags)'
> E and: '/usr/lib/python3.11/re/_parser.py:980: in parse'
> E and: ' p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE,
> 0)'
> E and: '/usr/lib/python3.11/re/_parser.py:455: in _parse_sub'
> E and: ' itemsappend(_parse(source, state, verbose, nested + 1,'
> E and: '/usr/lib/python3.11/re/_parser.py:841: in _parse'
> E and: " raise source.error('global flags not at the start '"
> E and: 'E re.error: global flags not at the start of the
> expression at position 6'
> E and: '=========================== short test summary info
> ============================'
> E and: 'ERROR test_scenarios_none_found.py - re.error: global flags
> not at the start ...'
> E and: '!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!'
> E and: '=============================== 1 error in 0.11s
> ==============================='
> E remains unmatched: '*NoScenariosFound*'
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:90: Failed
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found2/runpytest-0
>
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found2/test_scenarios_none_found.py
> --import-mode=append
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found2
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found2
> plugins: bdd-5.0.0
> collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ________________ ERROR collecting test_scenarios_none_found.py
> _________________
> test_scenarios_none_found.py:4: in <module>
> scenarios('.')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios_none_found.py - re.error: global flags not at the start
> ...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.11s
> ===============================
> ______________ test_scenarios_none_found[--import-mode=importlib]
> ______________
>
> testdir = <Testdir
> local('/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found3')>
> pytest_params = ['--import-mode=importlib']
>
> def test_scenarios_none_found(testdir, pytest_params):
> """Test scenarios shortcut when no scenarios found."""
> testpath = testdir.makepyfile(
> """
> import pytest
> from pytest_bdd import scenarios
>
> scenarios('.')
> """
> )
> result = testdir.runpytest_subprocess(testpath, *pytest_params)
> assert_outcomes(result, errors=1)
> > result.stdout.fnmatch_lines(["*NoScenariosFound*"])
> E Failed: nomatch: '*NoScenariosFound*'
> E and: '============================= test session starts
> =============================='
> E and: 'platform linux -- Python 3.11.1, pytest-7.2.0,
> pluggy-1.0.0+repack'
> E and: 'rootdir:
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found3'
> E and: 'plugins: bdd-5.0.0'
> E and: 'collected 0 items / 1 error'
> E and: ''
> E and: '==================================== ERRORS
> ===================================='
> E and: '________________ ERROR collecting
> test_scenarios_none_found.py _________________'
> E and: 'test_scenarios_none_found.py:4: in <module>'
> E and: " scenarios('.')"
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios'
> E and: ' for feature in get_features(abs_feature_paths):'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features'
> E and: '
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))'
> E and:
> '/<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features'
> E and: ' for path in paths:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob'
> E and: ' for dirname, dir_groups in dirs:'
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob'
> E and: ' for name, groups in self.resolve_pattern('
> E and: '/usr/lib/python3/dist-packages/glob2/impl.py:177: in
> resolve_pattern'
> E and: ' return fnmatch.filter(names, pattern)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in
> filter'
> E and: ' match = _compile_pattern(pat)'
> E and: '/usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in
> _compile_pattern'
> E and: ' return re.compile(res).match'
> E and: '/usr/lib/python3.11/re/__init__.py:227: in compile'
> E and: ' return _compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/__init__.py:294: in _compile'
> E and: ' p = _compiler.compile(pattern, flags)'
> E and: '/usr/lib/python3.11/re/_compiler.py:743: in compile'
> E and: ' p = _parser.parse(p, flags)'
> E and: '/usr/lib/python3.11/re/_parser.py:980: in parse'
> E and: ' p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE,
> 0)'
> E and: '/usr/lib/python3.11/re/_parser.py:455: in _parse_sub'
> E and: ' itemsappend(_parse(source, state, verbose, nested + 1,'
> E and: '/usr/lib/python3.11/re/_parser.py:841: in _parse'
> E and: " raise source.error('global flags not at the start '"
> E and: 'E re.error: global flags not at the start of the
> expression at position 6'
> E and: '=========================== short test summary info
> ============================'
> E and: 'ERROR test_scenarios_none_found.py - re.error: global flags
> not at the start ...'
> E and: '!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!'
> E and: '=============================== 1 error in 0.13s
> ==============================='
> E remains unmatched: '*NoScenariosFound*'
>
> /<<PKGBUILDDIR>>/tests/feature/test_scenarios.py:90: Failed
> ----------------------------- Captured stdout call
> -----------------------------
> running: /usr/bin/python3.11 -mpytest
> --basetemp=/tmp/pytest-of-user42/pytest-2/test_scenarios_none_found3/runpytest-0
>
> /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found3/test_scenarios_none_found.py
> --import-mode=importlib
> in: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found3
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /tmp/pytest-of-user42/pytest-2/test_scenarios_none_found3
> plugins: bdd-5.0.0
> collected 0 items / 1 error
>
> ==================================== ERRORS
> ====================================
> ________________ ERROR collecting test_scenarios_none_found.py
> _________________
> test_scenarios_none_found.py:4: in <module>
> scenarios('.')
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/scenario.py:322:
> in scenarios
> for feature in get_features(abs_feature_paths):
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:72:
> in get_features
> features.extend(get_features(glob2.iglob(os.path.join(path, "**",
> "*.feature")), **kwargs))
> /<<PKGBUILDDIR>>/debian/python3-pytest-bdd/usr/lib/python3.11/dist-packages/pytest_bdd/feature.py:68:
> in get_features
> for path in paths:
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> /usr/lib/python3.11/re/_parser.py:841: in _parse
> raise source.error('global flags not at the start '
> E re.error: global flags not at the start of the expression at position 6
> =========================== short test summary info
> ============================
> ERROR test_scenarios_none_found.py - re.error: global flags not at the start
> ...
> !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection
> !!!!!!!!!!!!!!!!!!!!
> =============================== 1 error in 0.13s
> ===============================
> _________________________________ test_migrate
> _________________________________
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f39703f4590>
> capsys = <_pytest.capture.CaptureFixture object at 0x7f39703f4850>
> testdir = <Testdir local('/tmp/pytest-of-user42/pytest-2/test_migrate0')>
>
> def test_migrate(monkeypatch, capsys, testdir):
> """Test if the code is migrated by a given file mask."""
> tests = testdir.mkpydir("tests")
>
> tests.join("test_foo.py").write(
> textwrap.dedent(
> '''
> """Foo bar tests."""
> from pytest_bdd import scenario
>
> test_foo = scenario('foo_bar.feature', 'Foo bar')
> '''
> )
> )
>
> monkeypatch.setattr(sys, "argv", ["", "migrate", tests.strpath])
> > main()
>
> /<<PKGBUILDDIR>>/tests/scripts/test_migrate.py:28:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /<<PKGBUILDDIR>>/pytest_bdd/scripts.py:75: in main
> args.func(args)
> /<<PKGBUILDDIR>>/pytest_bdd/scripts.py:17: in migrate_tests
> for file_path in glob2.iglob(os.path.join(os.path.abspath(path), "**",
> "*.py")):
> /usr/lib/python3/dist-packages/glob2/impl.py:119: in _iglob
> for dirname, dir_groups in dirs:
> /usr/lib/python3/dist-packages/glob2/impl.py:120: in _iglob
> for name, groups in self.resolve_pattern(
> /usr/lib/python3/dist-packages/glob2/impl.py:177: in resolve_pattern
> return fnmatch.filter(names, pattern)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:55: in filter
> match = _compile_pattern(pat)
> /usr/lib/python3/dist-packages/glob2/fnmatch.py:49: in _compile_pattern
> return re.compile(res).match
> /usr/lib/python3.11/re/__init__.py:227: in compile
> return _compile(pattern, flags)
> /usr/lib/python3.11/re/__init__.py:294: in _compile
> p = _compiler.compile(pattern, flags)
> /usr/lib/python3.11/re/_compiler.py:743: in compile
> p = _parser.parse(p, flags)
> /usr/lib/python3.11/re/_parser.py:980: in parse
> p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
> /usr/lib/python3.11/re/_parser.py:455: in _parse_sub
> itemsappend(_parse(source, state, verbose, nested + 1,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> source = <re._parser.Tokenizer object at 0x7f39706e8d10>
> state = <re._parser.State object at 0x7f39706ebb10>, verbose = 0, nested = 1
> first = True
>
> def _parse(source, state, verbose, nested, first=False):
> # parse a simple pattern
> subpattern = SubPattern(state)
>
> # precompute constants into local variables
> subpatternappend = subpattern.append
> sourceget = source.get
> sourcematch = source.match
> _len = len
> _ord = ord
>
> while True:
>
> this = source.next
> if this is None:
> break # end of pattern
> if this in "|)":
> break # end of subpattern
> sourceget()
>
> if verbose:
> # skip whitespace and comments
> if this in WHITESPACE:
> continue
> if this == "#":
> while True:
> this = sourceget()
> if this is None or this == "\n":
> break
> continue
>
> if this[0] == "\\":
> code = _escape(source, this, state)
> subpatternappend(code)
>
> elif this not in SPECIAL_CHARS:
> subpatternappend((LITERAL, _ord(this)))
>
> elif this == "[":
> here = source.tell() - 1
> # character set
> set = []
> setappend = set.append
> ## if sourcematch(":"):
> ## pass # handle character classes
> if source.next == '[':
> import warnings
> warnings.warn(
> 'Possible nested set at position %d' % source.tell(),
> FutureWarning, stacklevel=nested + 6
> )
> negate = sourcematch("^")
> # check remaining characters
> while True:
> this = sourceget()
> if this is None:
> raise source.error("unterminated character set",
> source.tell() - here)
> if this == "]" and set:
> break
> elif this[0] == "\\":
> code1 = _class_escape(source, this)
> else:
> if set and this in '-&~|' and source.next == this:
> import warnings
> warnings.warn(
> 'Possible set %s at position %d' % (
> 'difference' if this == '-' else
> 'intersection' if this == '&' else
> 'symmetric difference' if this == '~' else
> 'union',
> source.tell() - 1),
> FutureWarning, stacklevel=nested + 6
> )
> code1 = LITERAL, _ord(this)
> if sourcematch("-"):
> # potential range
> that = sourceget()
> if that is None:
> raise source.error("unterminated character set",
> source.tell() - here)
> if that == "]":
> if code1[0] is IN:
> code1 = code1[1][0]
> setappend(code1)
> setappend((LITERAL, _ord("-")))
> break
> if that[0] == "\\":
> code2 = _class_escape(source, that)
> else:
> if that == '-':
> import warnings
> warnings.warn(
> 'Possible set difference at position %d'
> % (
> source.tell() - 2),
> FutureWarning, stacklevel=nested + 6
> )
> code2 = LITERAL, _ord(that)
> if code1[0] != LITERAL or code2[0] != LITERAL:
> msg = "bad character range %s-%s" % (this, that)
> raise source.error(msg, len(this) + 1 + len(that))
> lo = code1[1]
> hi = code2[1]
> if hi < lo:
> msg = "bad character range %s-%s" % (this, that)
> raise source.error(msg, len(this) + 1 + len(that))
> setappend((RANGE, (lo, hi)))
> else:
> if code1[0] is IN:
> code1 = code1[1][0]
> setappend(code1)
>
> set = _uniq(set)
> # XXX: <fl> should move set optimization to compiler!
> if _len(set) == 1 and set[0][0] is LITERAL:
> # optimization
> if negate:
> subpatternappend((NOT_LITERAL, set[0][1]))
> else:
> subpatternappend(set[0])
> else:
> if negate:
> set.insert(0, (NEGATE, None))
> # charmap optimization can't be added here because
> # global flags still are not known
> subpatternappend((IN, set))
>
> elif this in REPEAT_CHARS:
> # repeat previous item
> here = source.tell()
> if this == "?":
> min, max = 0, 1
> elif this == "*":
> min, max = 0, MAXREPEAT
>
> elif this == "+":
> min, max = 1, MAXREPEAT
> elif this == "{":
> if source.next == "}":
> subpatternappend((LITERAL, _ord(this)))
> continue
>
> min, max = 0, MAXREPEAT
> lo = hi = ""
> while source.next in DIGITS:
> lo += sourceget()
> if sourcematch(","):
> while source.next in DIGITS:
> hi += sourceget()
> else:
> hi = lo
> if not sourcematch("}"):
> subpatternappend((LITERAL, _ord(this)))
> source.seek(here)
> continue
>
> if lo:
> min = int(lo)
> if min >= MAXREPEAT:
> raise OverflowError("the repetition number is too
> large")
> if hi:
> max = int(hi)
> if max >= MAXREPEAT:
> raise OverflowError("the repetition number is too
> large")
> if max < min:
> raise source.error("min repeat greater than max
> repeat",
> source.tell() - here)
> else:
> raise AssertionError("unsupported quantifier %r" %
> (char,))
> # figure out which item to repeat
> if subpattern:
> item = subpattern[-1:]
> else:
> item = None
> if not item or item[0][0] is AT:
> raise source.error("nothing to repeat",
> source.tell() - here + len(this))
> if item[0][0] in _REPEATCODES:
> raise source.error("multiple repeat",
> source.tell() - here + len(this))
> if item[0][0] is SUBPATTERN:
> group, add_flags, del_flags, p = item[0][1]
> if group is None and not add_flags and not del_flags:
> item = p
> if sourcematch("?"):
> # Non-Greedy Match
> subpattern[-1] = (MIN_REPEAT, (min, max, item))
> elif sourcematch("+"):
> # Possessive Match (Always Greedy)
> subpattern[-1] = (POSSESSIVE_REPEAT, (min, max, item))
> else:
> # Greedy Match
> subpattern[-1] = (MAX_REPEAT, (min, max, item))
>
> elif this == ".":
> subpatternappend((ANY, None))
>
> elif this == "(":
> start = source.tell() - 1
> capture = True
> atomic = False
> name = None
> add_flags = 0
> del_flags = 0
> if sourcematch("?"):
> # options
> char = sourceget()
> if char is None:
> raise source.error("unexpected end of pattern")
> if char == "P":
> # python extensions
> if sourcematch("<"):
> # named group: skip forward to end of name
> name = source.getuntil(">", "group name")
> source.checkgroupname(name, 1, nested)
> elif sourcematch("="):
> # named backreference
> name = source.getuntil(")", "group name")
> source.checkgroupname(name, 1, nested)
> gid = state.groupdict.get(name)
> if gid is None:
> msg = "unknown group name %r" % name
> raise source.error(msg, len(name) + 1)
> if not state.checkgroup(gid):
> raise source.error("cannot refer to an open
> group",
> len(name) + 1)
> state.checklookbehindgroup(gid, source)
> subpatternappend((GROUPREF, gid))
> continue
>
> else:
> char = sourceget()
> if char is None:
> raise source.error("unexpected end of
> pattern")
> raise source.error("unknown extension ?P" + char,
> len(char) + 2)
> elif char == ":":
> # non-capturing group
> capture = False
> elif char == "#":
> # comment
> while True:
> if source.next is None:
> raise source.error("missing ), unterminated
> comment",
> source.tell() - start)
> if sourceget() == ")":
> break
> continue
>
> elif char in "=!<":
> # lookahead assertions
> dir = 1
> if char == "<":
> char = sourceget()
> if char is None:
> raise source.error("unexpected end of
> pattern")
> if char not in "=!":
> raise source.error("unknown extension ?<" +
> char,
> len(char) + 2)
> dir = -1 # lookbehind
> lookbehindgroups = state.lookbehindgroups
> if lookbehindgroups is None:
> state.lookbehindgroups = state.groups
> p = _parse_sub(source, state, verbose, nested + 1)
> if dir < 0:
> if lookbehindgroups is None:
> state.lookbehindgroups = None
> if not sourcematch(")"):
> raise source.error("missing ), unterminated
> subpattern",
> source.tell() - start)
> if char == "=":
> subpatternappend((ASSERT, (dir, p)))
> else:
> subpatternappend((ASSERT_NOT, (dir, p)))
> continue
>
> elif char == "(":
> # conditional backreference group
> condname = source.getuntil(")", "group name")
> if condname.isidentifier():
> source.checkgroupname(condname, 1, nested)
> condgroup = state.groupdict.get(condname)
> if condgroup is None:
> msg = "unknown group name %r" % condname
> raise source.error(msg, len(condname) + 1)
> else:
> try:
> condgroup = int(condname)
> if condgroup < 0:
> raise ValueError
> except ValueError:
> msg = "bad character in group name %r" %
> condname
> raise source.error(msg, len(condname) + 1)
> from None
> if not condgroup:
> raise source.error("bad group number",
> len(condname) + 1)
> if condgroup >= MAXGROUPS:
> msg = "invalid group reference %d" % condgroup
> raise source.error(msg, len(condname) + 1)
> if condgroup not in state.grouprefpos:
> state.grouprefpos[condgroup] = (
> source.tell() - len(condname) - 1
> )
> if not (condname.isdecimal() and
> condname.isascii()):
> import warnings
> warnings.warn(
> "bad character in group name %s at
> position %d" %
> (repr(condname) if source.istext else
> ascii(condname),
> source.tell() - len(condname) - 1),
> DeprecationWarning, stacklevel=nested + 6
> )
> state.checklookbehindgroup(condgroup, source)
> item_yes = _parse(source, state, verbose, nested + 1)
> if source.match("|"):
> item_no = _parse(source, state, verbose, nested +
> 1)
> if source.next == "|":
> raise source.error("conditional backref with
> more than two branches")
> else:
> item_no = None
> if not source.match(")"):
> raise source.error("missing ), unterminated
> subpattern",
> source.tell() - start)
> subpatternappend((GROUPREF_EXISTS, (condgroup,
> item_yes, item_no)))
> continue
>
> elif char == ">":
> # non-capturing, atomic group
> capture = False
> atomic = True
> elif char in FLAGS or char == "-":
> # flags
> flags = _parse_flags(source, state, char)
> if flags is None: # global flags
> if not first or subpattern:
> > raise source.error('global flags not at the
> > start '
> 'of the expression',
> source.tell() - start)
> E re.error: global flags not at the start of
> the expression at position 6
>
> /usr/lib/python3.11/re/_parser.py:841: error
> =========================== short test summary info
> ============================
> FAILED
> tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[]
> FAILED
> tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[-v]
> FAILED
> tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[-vv]
> FAILED tests/feature/test_no_scenario.py::test_no_scenarios - Failed:
> nomatch...
> FAILED tests/feature/test_scenarios.py::test_scenarios[no-import-mode] -
> Asse...
> FAILED tests/feature/test_scenarios.py::test_scenarios[--import-mode=prepend]
> FAILED tests/feature/test_scenarios.py::test_scenarios[--import-mode=append]
> FAILED
> tests/feature/test_scenarios.py::test_scenarios[--import-mode=importlib]
> FAILED
> tests/feature/test_scenarios.py::test_scenarios_none_found[no-import-mode]
> FAILED
> tests/feature/test_scenarios.py::test_scenarios_none_found[--import-mode=prepend]
> FAILED
> tests/feature/test_scenarios.py::test_scenarios_none_found[--import-mode=append]
> FAILED
> tests/feature/test_scenarios.py::test_scenarios_none_found[--import-mode=importlib]
> FAILED tests/scripts/test_migrate.py::test_migrate - re.error: global flags
> n...
> =========== 13 failed, 99 passed, 1 skipped, 2 deselected in 13.10s
> ============
> E: pybuild pybuild:386: test: plugin custom failed with: exit code=1:
> python3.11 -m pytest -k 'not test_generate_with_quotes and not
> test_unicode_characters'
> I: pybuild base:240: python3.10 -m pytest -k 'not test_generate_with_quotes
> and not test_unicode_characters'
> ============================= test session starts
> ==============================
> platform linux -- Python 3.10.9, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /<<PKGBUILDDIR>>, configfile: pytest.ini, testpaths: tests
> plugins: bdd-5.0.0
> collected 115 items / 2 deselected / 113 selected
>
> tests/test_hooks.py .. [
> 1%]
> tests/args/test_arg_fixture_mix.py . [
> 2%]
> tests/args/cfparse/test_args.py .. [
> 4%]
> tests/args/parse/test_args.py .. [
> 6%]
> tests/args/regex/test_args.py .. [
> 7%]
> tests/feature/test_alias.py . [
> 8%]
> tests/feature/test_background.py .. [
> 10%]
> tests/feature/test_cucumber_json.py . [
> 11%]
> tests/feature/test_description.py . [
> 12%]
> tests/feature/test_feature_base_dir.py ...... [
> 17%]
> tests/feature/test_gherkin_terminal_reporter.py ............ [
> 28%]
> tests/feature/test_multiline.py ..... [
> 32%]
> tests/feature/test_no_scenario.py . [
> 33%]
> tests/feature/test_no_sctrict_gherkin.py .. [
> 35%]
> tests/feature/test_outline.py ........ [
> 42%]
> tests/feature/test_outline_empty_values.py .. [
> 44%]
> tests/feature/test_parametrized.py . [
> 45%]
> tests/feature/test_report.py .s [
> 46%]
> tests/feature/test_same_function_name.py . [
> 47%]
> tests/feature/test_scenario.py ............. [
> 59%]
> tests/feature/test_scenarios.py ........ [
> 66%]
> tests/feature/test_steps.py ........ [
> 73%]
> tests/feature/test_tags.py ............ [
> 84%]
> tests/feature/test_wrong.py . [
> 84%]
> tests/generation/test_generate_missing.py ... [
> 87%]
> tests/library/test_parent.py .... [
> 91%]
> tests/scripts/test_generate.py . [
> 92%]
> tests/scripts/test_main.py . [
> 92%]
> tests/scripts/test_migrate.py . [
> 93%]
> tests/steps/test_given.py . [
> 94%]
> tests/steps/test_steps.py .... [
> 98%]
> tests/steps/test_unicode.py ..
> [100%]
>
> ================ 112 passed, 1 skipped, 2 deselected in 13.53s
> =================
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.11
> 3.10" --system=custom "--test-args={interpreter} -m pytest -k 'not
> test_generate_with_quotes and not test_unicode_characters'" returned exit
> code 13
The full build log is available from:
http://qa-logs.debian.net/2022/12/20/pytest-bdd_5.0.0-1_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20221220;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20221220&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
--- End Message ---