Skip to content

Releases: LUMC/pytest-workflow

version 2.1.0

18 Mar 16:26
6ad763e
Compare
Choose a tag to compare
  • Python version 3.7 support is dropped because it is deprecated. Python
    version 3.12 was added.
  • Fixed a bug where pytest 8.1+ would raise a PluginValidationError because
    the hook pytest_collect_file() has finally dropped the deprecated
    argument path from its specification.
  • Add extract_md5sum check on uncompressed contents of compressed output files.
    Gzipped files contain a timestamp which makes it hard to directly compare the
    md5sums of gzipped files.
  • Document naming conventions for Python test discovery

Version 2.0.1

13 Jan 11:10
18eb79c
Compare
Choose a tag to compare
  • Fixed a bug where pytest-workflow would crash on logs that used non-ASCII
    characters where the chunk of size --stderr-bytes did not properly align
    with the used encoding.

Version 2.0.0

04 Jan 11:34
a9aa695
Compare
Choose a tag to compare

This major release greatly cleans up the output of pytest-workflow in case of
an error as well as providing the stderr and stdout last bytes for debugging
purposes. When the exit code test fails all other tests from the workflow
are skipped.

  • Python 3.6 is no longer supported. It has been removed from github actions,
    as such we can no longer guarantee that pytest-workflow works properly
    with python 3.6.
  • Fix an issue where symlinks in git repositories could not be properly copied.
  • Added an optional encoding key for files, stdout and stderr so the file can
    be opened with the proper encoding.
  • Make content tests more efficient by reading each file only once instead of
    twice when there are both strings and regexes to check for.
  • When the --git-aware flag is used a submodule check is performed in order
    to assert that all submodules are properly checked out. This prevents
    unclear copying errors.
  • Tests are now skipped if the workflow does not exit with the desired exit
    code, except for the exit code tests, to reduce visual clutter when reporting
    failing tests.
  • Tests for checking file content are now skipped when the file does not exist
    in order to reduce visual clutter when reporting failing tests.
  • Test and support for Python 3.11.
  • Add --stderr-bytes or --sb option to change the maximum
    number of bytes to display for the stderr and stdout on
    command failure.
  • Add stderr and stdout to be displayed on command failure
  • Document using pytest.ini as a way of setting specific per repository
    settings for pytest-workflow.
  • Add tests for nextflow.
  • Document the use of environment variables with pytest-workflow.
  • A minimum of pytest 7.0.0 is now a requirement for pytest-workflow.
    This fixes the deprecation warnings that started on the release of pytest
    7.0.0.
  • Throw a more descriptive error when a file copied with the --git-aware flag
    is not present on the filesystem anymore.
  • Document pytest flags -k and -m are not supported.

version 1.6.0

03 Dec 12:34
e1bfc76
Compare
Choose a tag to compare
  • Add a --git-aware or --ga option to only copy copy files listed by
    git ls-files. This omits the .git folder, all untracked files and
    everything ignored by .gitignore. This reduces the number of copy
    operations drastically.

    Pytest-workflow will now emit a warning when copying of a git directory is
    detected without the --git-aware option.

  • Add support and tests for Python 3.10

version 1.5.0

14 Dec 13:42
Compare
Choose a tag to compare
  • Add support for python 3.9
  • Update the print statement for starting jobs to be more structured. This will
    make the output easier to to read and use, since different fields (stdout,
    stderr, command, etc) are all on their own line.
  • Do not crash when directories can not be removed due to permission errors.
    Instead display a message to notify the users which directories could not be
    removed. These issues occurred sometimes when tests involving docker were
    run.

version 1.4.0

20 May 13:38
40c027a
Compare
Choose a tag to compare
  • Usage of the name keyword argument in workflow marks is now deprecated.
    Using this will crash the plugin with a DeprecationWarning.
  • Update minimum python requirement in the documentation.
  • Removed redundant check in string checking code.
  • Add new options contains_regex and must_not_contain_regex to check
    for regexes in files and stdout/stderr.

version 1.3.0

20 Apr 08:34
45887cd
Compare
Choose a tag to compare

Python 3.6 and pytest 5.4.0.0 are now minimum requirements for pytest-workflow.
This was necessary for fixing the deprecation warning issue and the issue with
the subdirectory evaluation. This also gave the opportunity to simplify the
source code using new python 3.6 syntax.

  • Using the name keyword argument in workflow marks will be deprecated
    from 1.4.0 onwards. A warning will be given if this is used. For example:
    pytest.mark.workflow(name="my_workflow"). Use the name as argument
    instead: pytest.mark.workflow("my_workflow").
  • Allow running custom tests on multiple workflows. You can now use
    pytest.mark.workflow("worflow name 1", "workflow name 2", ...).
    (Issue #75 <https://github.com/LUMC/pytest-workflow/issues/75>_)
  • Add a miniwdl example to the documentation.
  • Added a --symlink flag to the CLI that changes the copying behavior.
    Instead of copying, it creates a similar directory structure where all files
    are linked to with symbolic links. (Issue #96 <https://github.com/LUMC/pytest-workflow/issues/98>_)
  • Refactored the code base. Python 3.6's f-strings and type annotation were
    used consistently throughout the project. Some code was rewritten to be more
    concise and readable.
  • Improved speed for searching string content in files. This was achieved by
    removing intermediate functions and simplifying the search function.
  • Improved speed for calculating md5sums by increasing the read buffer size
    from 8k to 64k.
  • Solve issue where pytest would display a lot of deprecation warnings when
    running pytest-workflow. (Issue #98 <https://github.com/LUMC/pytest-workflow/issues/98>_)
  • Fix issues with later versions of Cromwell and Snakemake in CI testing.
  • Add correct subdirectory evaluation to fix issue where /parent-dir/child
    was evaluated as a subdirectory of /parent due to starting with the same
    string. (Issue #95 <https://github.com/LUMC/pytest-workflow/issues/95>_)
  • Fix error in cromwell example which did not allow it to remove folders
    correctly.

version 1.2.3

17 Feb 14:45
Compare
Choose a tag to compare

version 1.2.3

Patch release that fixes the missing help section for --tag and
updates the documentation.

  • Added missing help section for --tag on the CLI.
  • Documentation: added usage chapter for pytest-workflow specific options.
  • Documentation: updated Cromwell example.

version 1.2.2

07 Nov 13:23
8118851
Compare
Choose a tag to compare

Bugfix and maintenance release

  • Test against python3.8
  • Do not test on python3.5 snakemake as it crashes. Added test for python3.7
    snakemake.
  • Fix a typo in the documentation.
  • Add tags 'wdl', 'cromwell' and 'snakemake' to the package to increase
    discoverability.
  • Remove pylint from the lint procedure as it was very strict and got stricter
    with every update, causing tests that previously succeeded to fail on a
    regular basis.
  • Make sure pytest-workflow crashes when multiple workflows have the same name,
    even when they are in different files.
  • Added setup.cfg to include license in source distributions on PyPI for
    future versions

version 1.2.1

07 Nov 13:24
71acdaa
Compare
Choose a tag to compare
  • Since pytest 4.5.0 unknown markers give a warning. @pytest.mark.workflow
    markers are now added to the configuration. Information on usage shows up
    with pytest --mark.
  • Updated documentation to reflect the move to conda-forge as requested on
    this github issue <https://github.com/bioconda/bioconda-recipes/issues/13964>_.
  • Updated documentation on how to test Cromwell + WDL pipelines.