Behave

Latest version: v1.2.6

Safety actively analyzes 682361 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.4.0

-------------------------------------------------------------------------------

GOALS:

* Drop support for Python 2.7
* MAYBE: Requires Python >= 3.7 (at least)

DEPRECATIONS:

* DEPRECATED: ``tag-expressions v1`` (old-style tag-expressions)

1.3.0

-------------------------------------------------------------------------------

GOALS:

* Will be released on https://pypi.org
* Inlude all changes from behave v1.2.7 development
* Last version minor version with Python 2.7 support
* ``tag-expressions v2``: Enabled by default ("strict" mode: only v2 supported).
* ``tag-expressions v1``: Disabled by default (in "strict" mode).
BUT: Can be enabled via config-file parameter in "any" mode (supports: v1 and v2).

1.2.7

-------------------------------------------------------------------------------

BACKWARD-INCOMPATIBLE:

* Replace old-style tag-expressions with `cucumber-tag-expressions`_ as ``tag-expressions v2``.

HINTS:

- DEPRECATING: ``tag-expressions v1`` (old-style)
- BUT: Currently, tag-expression version is automatically detected (and used).

* CLI: Cleanup command-line short-options that are seldom used
(short-options for: --no-skipped (-k), --no-multiline (-m), --no-source (-s)).

* parser: No longer strips trailing colon from steps with text/table section.
* Undefined steps need to use StepNotImplementedError (was: NotImplementedError)

GOALS:

- Improve support for Windows (continued)
- FIX: Unicode problems on Windows (in behave-1.2.6)
- FIX: Regression test problems on Windows (in behave-1.2.6)

DEVELOPMENT:

* Renamed default branch of Git repository to "main" (was: "master").
* Use github-actions as CI/CD pipeline (and remove Travis as CI).
* CI: Remove python.version=2.7 for CI pipeline
(reason: No longer supported by Github Actions, date: 2023-07).
* ADDED: pyproject.toml support (hint: "setup.py" will become DEPRECATED soon)

CLEANUPS:

* CLI: Remove unused option ``--expand``
* Remove ``stdout_capture``, ``stderr_capture``, ``log_capture``
attributes from ``behave.runner.Context`` class
(use: ``captured`` attribute instead).

ENHANCEMENTS:

* Add support for step-definitions (step-matchers) with `CucumberExpressions`_
* Add formatter: steps.code -- Shows steps with code-section.
* User-defined formatters: Improve diagnostics if bad formatter is used (ModuleNotFound, ...)
* active-tags: Added ``ValueObject`` class for enhanced control of comparison mechanism
(supports: equals, less-than, less-or-equal, greater-than, greater-or-equal, contains, ...)
* Add support for Gherkin v6 grammar and syntax in ``*.feature`` files
* Use `cucumber-tag-expressions`_ with tag-matching extension (superceeds: old-style tag-expressions)
* Use cucumber "gherkin-languages.json" now (simplify: Gherkin v6 aliases, language usage)
* Support emojis in ``*.feature`` files and steps
* Select-by-location: Add support for "Scenario container" (Feature, Rule, ScenarioOutline) (related to: 391)
* pull 1185: Read Examples table data from CSV file (provided-by: rajanmanwansh)
* issue 1183: Support Background Steps with Placeholders for Scenario Outlines (submitted by: hemendra0851)
* pull 1097: Support And-Step as initial Scenario step if Background Steps exist (provided-by: aneeshdurg)
* pull 988: setup.py: Add category to install additional formatters (html) (provided-by: bittner)
* pull 895: UPDATE: i18n/gherkin-languages.json from cucumber repository 895 (related to: 827)
* issue 889: Warn or error about incorrectly configured formatter aliases (provided by: jenisys, submitted by: bittner)
* pull 827: Fixed keyword translation in Estonian 827 (provided by: ookull)
* issue 740: Enhancement: possibility to add cleanup to be called upon leaving outer context stack frames (submitted by: nizwiz, dcvmoole)
* issue 678: Scenario Outline: Support tags with commas and semicolons (provided by: lawnmowerlatte, pull 679)
* issue 675: Feature files cannot be found within symlink directories (provided by: smadness, pull 680)

CLARIFICATION:

* issue 810: Clarify select-by-name using regex pattern (submitted by: xv-chris-w)

FIXED:

* FIXED: Some tests for python-3.12
* FIXED: Some tests related to python-3.11
* FIXED: Some tests related to python-3.9
* FIXED: active-tag logic if multiple tags with same category exists.
* issue 1177: Bad type-converter pattern: MatchWithError is turned into AmbiguousStep (submitted by: omrischwarz)
* issue 1170: TagExpression auto-detection is not working properly (submitted by: Luca-morphy)
* issue 1154: Config-files are not shown in verbose mode (submitted by: soblom)
* issue 1120: Logging ignoring level set in setup_logging (submitted by: j7an)
* issue 1070: Color support detection: Fails for WindowsTerminal (provided by: jenisys)
* issue 1116: behave erroring in pretty format in pyproject.toml (submitted by: morning-sunn)
* issue 1061: Scenario should inherit Rule tags (submitted by: testgitdl)
* issue 1054: TagExpressions v2: AND concatenation is faulty (submitted by: janoskut)
* pull 967: Update __init__.py in behave import to fix pylint (provided by: dsayling)
* issue 955: setup: Remove attribute 'use_2to3' (submitted by: krisgesling)
* issue 772: ScenarioOutline.Examples without table (submitted by: The-QA-Geek)
* issue 755: Failures with Python 3.8 (submitted by: hroncok)
* issue 725: Scenario Outline description lines seem to be ignored (submitted by: nizwiz)
* issue 713: Background section doesn't support description (provided by: dgou)
* pull 657: Allow async steps with timeouts to fail when they raise exceptions (provided by: ALSchwalm)
* issue 641: Pylint errors when importing given - when - then from behave (solved by: 967)
* issue 631: ScenarioOutline variables not possible in table headings (provided by: mschnelle, pull 642)
* issue 619: Context __getattr__ should raise AttributeError instead of KeyError (submitted by: anxodio)
* pull 588: Steps-catalog argument should not break configured rerun settings (provided by: Lego3)

MINOR:

* issue 1047: Step type is inherited for generic step if possible (submitted by: zettseb)
* issue 958: Replace dashes with underscores to comply with setuptools v54.1.0 958 (submitted by: arrooney)
* issue 800: Cleanups related to Gherkin parser/ParseError question (submitted by: otstanteplz)
* pull 767: FIX: use_fixture_by_tag didn't return the actual fixture in all cases (provided by: jgentil)
* pull 751: gherkin: Adding Rule keyword translation in portuguese and spanish to gherkin-languages.json (provided by: dunossauro)
* pull 660: Fix minor typos (provided by: rrueth)
* pull 655: Use pytest instead of py.test per upstream recommendation (provided by: scop)
* issue 654: tox.ini: pypi.python.org -> pypi.org (submitted by: pradyunsg)

DOCUMENTATION:

* pull 989: Add more tutorial links: Nicole Harris, Nick Coghlan (provided by: ncoghlan, bittner; related: 848)
* pull 877: docs: API reference - Capitalizing Step Keywords in example (provided by: Ibrian93)
* pull 731: Update links to Django docs (provided by: bittner)
* pull 722: DOC remove remaining pythonhosted links (provided by: leszekhanusz)
* pull 701: behave/runner.py docstrings (provided by: spitGlued)
* pull 700: Fix wording of "gherkin.rst" (provided by: spitGlued)
* pull 699: Fix wording of "philosophy.rst" (provided by: spitGlued)
* pull 684: Fix typo in "install.rst" (provided by: mstred)
* pull 628: Changed pythonhosted.org links to readthedocs.io (provided by: chrisbrake)

BREAKING CHANGES (naming):

* behave.configuration.OPTIONS: was ``behave.configuration.options``
* behave.runner.Context._push(layer=None): was Context._push(layer_name=None)
* behave.runner.scoped_context_layer(context, layer=None):
was scoped_context_layer(context.layer_name=None)


.. _`cucumber-tag-expressions`: https://pypi.org/project/cucumber-tag-expressions/
.. _`CucumberExpressions`: https://github.com/cucumber/cucumber-expressions

1.2.6

-------------------------------------------------------------------------------

GOALS:

- Improve support for Windows


DOCUMENTATION:

* issue 625: Formatter documentation is inaccurate for some methods (reported by: throwable-one)
* pull 618: Fix a typo in the background section of gherkin docs (provided by: mrrn)
* pull 609: Describe execute_steps() behaviour correctly (provided by: mixxorz)
* pull 603: Update typo tutorial.rst (provided by: fnaval)
* pull 601: Add Flask integration chapter to documentation (provided by: bittner)
* pull 580: Fix some dead ecosystem links (provided by: smadness)
* pull 579: Add explanation for step_impl function name (provided by: bittner)
* issue 574: flake8 reports F811 redefinition of unused 'step_impl' (fixed by 579).
* pull 545: Spell "section" correctly (provided by: chelmertz)
* pull 489: Fix link to Selenium docs in Django chapter (provided by: bittner)
* pull 469: Fix typo in "formatters.rst" (provided by: ab9-er)
* pull 443: Fixing grammar in philosophy.rst (provided by: jamesroutley)
* pull 441: Integrate hint on testing more nicely (provided by: bittner)
* pull 429: Replace "Manual Integration" by "Automation Libraries" section (provided by: bittner)
* pull 379: Correct wording in README.rst (provided by: franklinchou)
* pull 362: docs/tutorial.rst: fixed non-monospace font (provided by: spacediver)
* pull 359: Update documentation related to Django (behave-django) (provided by: bittner)
* pull 326: docs/tutorial.rst: Correct features directory path creation (provided by: memee)
* issue 356: docs/api.rst: type in implementation (submitted by: tomxtobin)
* pull 335: docs/api.rst: execute_steps() example (provided by: miabbott)
* pull 339: Adapt wording in install.rst (provided by: charleswhchan)
* pull 338: docs/philosophy.rst: Correct to uppercase in example (provided by: charleswhchan)
* issue 323: Update Django Example to work with version >=1.7 (submitted by: mpetyx, provided by: bittner)
* pull 327: Fix typo in Django doc (provided by: nikolas)
* pull 321: Update Django integration (provided by: bittner, contains: 315, 316)
* FIX: cmdline/config-param doc-generator, avoid duplicated param entries (related to: 318)
* issue 317: Update comparison: lettuce tags (provided by: ramiabughazaleh)
* pull 307: Typo in readme (provided by: dflock)
* pull 305: behave.rst related fixes reapplied (provided by: bittner)
* pull 292: Use title-cased keywords in tutorial scenario (provided by: neoblackcap)
* pull 291: Tiny tweaks in tutorial docs (provided by: bernardpaulus)

SITE:

* pull 626: Formatting issue in stale-bot config (provided by: teapow)
* pull 343: Update/fix badges in README (provided by: mixxorz)

ENHANCEMENTS:

* fixtures: Add concept to simplify setup/cleanup tasks for scenario/feature/test-run
* context-cleanups: Use context.add_cleanup() to perform cleanups after scenario/feature/test-run.
* Tagged Examples: Examples in a ScenarioOutline can now have tags.
* pull 596: Add missing Czech translation (provided by: hason)
* pull 554: Adds galician language (provided by: carlosgoce)
* pull 447: behave settings from tox.ini (provided by: bittner)
* issue 411: Support multiple active-tags with same category (submitted by: Kani999)
* issue 409: Support async/asyncio.coroutine steps (submitted by: dcarp)
* issue 357: Add language attribute to Feature class
* pull 328: Auto-retry failed scenarios in unreliable environment (provided by: MihaiBalint, robertknight)
* issue 302: Support escaped-pipe in Gherkin table cell value (provided by: connorsml, pull 360)
* issue 301: Support default tags in configfile
* issue 299: Runner can continue after a failed step (same as: 314)
* issue 197: Hooks processing should be more exception safe (provided by: vrutkovs, jenisys, pull 205)

FORMATTERS:

* pull 446: Remove Formatter scenario_outline(), examples() method (provided by: aisbaa, jenisys)
* pull 448: json: Add status to scenarios in JSON report (provided by: remcowesterhoud)
* issue 462: json: Invalid JSON output when no features are selected (submitted by: remcowesterhoud)
* pull 423: sphinx.steps: Support ref link for each step (provided by: ZivThaller)
* pull 460: pretty: Print the step implementation location when dry-run (provided by: unklhe, jenisys)

REPORTERS:

* junit: Add timestamp and hostname attributes to testsuite XML element.
* junit: Support to tweak output with userdata (experimental).
* junit: Support scenario hook-errors with JUnitReporter (related to: 466)

CHANGES:

* status: Use Status enum-class for feature/scenario/step.status (was: string)
* hook-processing: Skips now feature/scenario/step if before-hook fails (related to: 454)
* parser: language comment in feature file has higher priority than --lang option (related to: 334).
* issue 385: before_scenario/before_feature called too late (submitted by: BRevzin)

FIXED:

* issue 606: Using name option w/ special unicode chars (submitted by: alluir42)
* issue 547: Crash when using step definition with optional cfparse parts (provided by: ftartaggia, jenisys)
* pull 599: Steps from another Windows drive (provided by: psicopep)
* issue 582: behave emitting PendingDeprecationWarning messages (submitted by: adamjcooper)
* pull 476: scenario.status when scenario without steps is skipped (provided by: ar45, jenisys)
* pull 471: convert an object to unicode (py2) using __unicode__ method first unicode (provided by: ftartaggia)
* issue 458: UnicodeEncodeError inside naked except block in __main__.py (submitted by: mseery)
* issue 453: Unicode chars are broken in stacktrace (submitted by: throwable-one)
* issue 455: Restore backward compatibility to Cucumber style RegexMatcher (submitted by: avabramov)
* issue 449: Unicode is processed incorrectly for Py2 in "textutil.text" (submitted by: throwable-one)
* issue 446: after_scenario HOOK-ERROR asserts with jUnit reporter (submitted by: lagin)
* issue 424: Exception message with unicode characters in nested steps (submitted by: yucer)
* issue 416: JUnit report messages cut off (submitted by: remcowesterhoud, provided by: bittner)
* issue 414: Support for Jython 2.7 (submitted by: gabtwi...)
* issue 384: Active Tags fail with ScenarioOutline (submitted by: BRevzin)
* issue 383: Handle (custom) Type parsing errors better (submitted by: zsoldosp)
* pull 382: fix typo in tag name (provided by: zsoldosp)
* issue 361: utf8 file with BOM (provided by: karulis)
* issue 349: ScenarioOutline skipped with --format=json
* issue 336: Stacktrace contents getting illegal characters inserted with text function (submited by: fj40bryan)
* issue 330: Skipped scenarios are included in junit reports when --no-skipped is specified (provided by: vrutkovs, pull 331)
* issue 320: Userdata is case-insensitive when read from config file (provided by: mixxorz)
* issue 319: python-version requirements in behave.whl for Python2.6 (submitted by: darkfoxprime)
* issue 310: Use setuptools_behave.py with behave module
* issue 309: behave --lang-list fails on Python3 (and Python2)
* issue 300: UnicodeDecodeError when read steps.py (similar to: 361)
* issue 288: Use print function instead print statement in environment/steps files

1.2.5

-------------------------------------------------------------------------------

:Same as: Version 1.2.5a1 (unreleased).

NEWS and CHANGES:

- General:

* Improve support for Python3 (py3.3, py3.4; 268)
* Various unicode related fixes (Unicode errors with non-ASCII, etc.)
* Drop support for Python 2.5

- Running:

* ScenarioOutline: Annotates name with row.id, ... to better represent row.
* NEW: Active Tags, see docs (`New and Noteworthy`_).
* NEW: Test stages, see docs (`New and Noteworthy`_).
* NEW: User-specific configuration data, see docs (`New and Noteworthy`_).
* CHANGED: Undefined step snippet uses now NotImplementedError (related to: 254)

- Model:

* ScenarioOutline: Various improvements, see docs (`New and Noteworthy`_).

- Formatters:

* plain: Can now show tags, but currently disabled per default
* NEW: steps.catalog: Readable summary of all steps (similar to: steps.doc, 271)
* NEW: User-defined formatters, see docs (`New and Noteworthy`_).

ENHANCEMENTS:

* pull 285: Travis CI improvements to use container environment, etc. (provided by: thedrow)
* pull 272: Use option role to format command line arg docs (provided by: helenst)
* pull 271: Provide steps.catalog formatter (provided by: berdroid)
* pull 261: Support "setup.cfg" as configuration file, too (provided by: bittner)
* pull 260: Documentation tweaks and typo fixes (provided by: bittner)
* pull 254: Undefined step raises NotImplementedError instead of assert False (provided by: mhfrantz)
* issue 242: JUnitReporter can show scenario tags (provided by: rigomes)
* issue 240: Test Stages with different step implementations (provided by: attilammagyar, jenisys)
* issue 238: Allow to skip scenario in step function (provided by: hotgloupi, jenisys)
* issue 228: Exclude scenario fron run (provided by: jdeppe, jenisys)
* issue 227: Add a way to add command line options to behave (provided by: attilammagyar, jenisys)

FIXED:

* pull 283: Fix "fork me" image in docs (provided by: frodopwns)
* issue 280: Fix missing begin/end-markers in RegexMatcher (provided by: tomekwszelaki, jenisys)
* pull 268: Fix py3 compatibility with all tests passed (provided by: sunliwen)
* pull 252: Related to 251 (provided by: mcepl)
* pull 190: UnicodeDecodeError in tracebacks (provided by: b3ni, vrutkovs, related to: 226, 230)
* issue 257: Fix JUnitReporter (XML) for Python3 (provided by: actionless)
* issue 249: Fix a number of docstring problems (provided by: masak)
* issue 253: Various problems in PrettyFormatter.exception()
* issue 251: Unicode crash in model.py (provided by: mcepl, jenisys)
* issue 236: Command line docs are confusing (solved by: 272)
* issue 230: problem with assert message that contains ascii over 128 value (provided by: jenisys)
* issue 226: UnicodeDecodeError in tracebacks (provided by: md1023, karulis, jenisys)
* issue 221: Fix some PY2/PY3 incompatibilities (provided by: johbo)
* pull 219: IDE's unknown modules import issue (provided by: xbx)
* issue 216: Using --wip option does not disable ANSI escape sequences (coloring).
* issue 119: Python3 support for behave (solved by: 268 and ...)
* issue 82: JUnitReporter fails with Python 3.x (fixed with: 257, 268)


.. _`New and Noteworthy`: https://github.com/behave/behave/blob/master/docs/new_and_noteworthy.rst

1.2.4

-------------------------------------------------------------------------------

:Same as: Version 1.2.4a1 (unreleased).

NEWS and CHANGES:

- Running:

* ABORT-BY-USER: Better handle KeyboardInterrupt to abort a test run.
* feature list files (formerly: feature configfiles) support wildcards.
* Simplify and improve setup of logging subsystem (related to: 143, 177)

- Step matchers:

* cfparse: Step matcher with "Cardinality Field" support (was: optional).

- Formatters:

* steps.usage: Avoid duplicated steps usage due to Scenario Outlines.
* json: Ensures now that matched step params (match args) cause valid JSON.


IMPROVEMENT:

* issue 108: behave.main() can be called with command-line args (provided by: medwards, jenisys)
* issue 172: Subfolders in junit XML filenames (provided by: roignac).
* issue 203: Integration with pdb (debug on error; basic support)
* Simple test runner to run behave tests from "setup.py"

FIXED:

* issue 143: Logging starts with a StreamHandler way too early (provided by: jtatum, jenisys).
* issue 175: Scenario isn't marked as 'failed' when Background step fails
* issue 177: Cannot setup logging_format
* issue 181: Escape apostrophes in undefined steps snippets
* issue 184: TypeError when running behave with --include option (provided by: s1ider).
* issue 186: ScenarioOutline uses wrong return value when if fails (provided by: mdavezac)
* issue 188: Better diagnostics if nested step is undefined
* issue 191: Using context.execute_steps() may change context.table/.text
* issue 194: Nested steps prevent that original stdout/stderr is restored
* issue 199: behave tag expression bug when or-not logic is used

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.