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.