Recent Releases of ward

ward - 0.68.0b0 - Python 3.12 support

What's Changed

  • Working in python 3.12 by @taconi in https://github.com/darrenburns/ward/pull/373

New Contributors

  • @taconi made their first contribution in https://github.com/darrenburns/ward/pull/373

Full Changelog: https://github.com/darrenburns/ward/compare/release/0.67.0b0...release/0.68.0b0

- Python
Published by darrenburns about 2 years ago

ward - 0.67.0b0 - Support for Python 3.11

What's Changed

  • Bump actions/setup-python from 3.1.2 to 4.0.0 by @dependabot in https://github.com/darrenburns/ward/pull/336
  • use asyncio.run by @dantownsend in https://github.com/darrenburns/ward/pull/334
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/darrenburns/ward/pull/337
  • Only re-indent after rewriting asserts in Py <3.11 by @AndydeCleyre in https://github.com/darrenburns/ward/pull/353
  • Add Py 3.11 to test matrix by @AndydeCleyre in https://github.com/darrenburns/ward/pull/354

New Contributors

  • @dantownsend made their first contribution in https://github.com/darrenburns/ward/pull/334

Full Changelog: https://github.com/darrenburns/ward/compare/release/0.66.1b0...release/0.67.0b0

- Python
Published by darrenburns over 3 years ago

ward - 0.66.1b0 - Plugin config fix

What's Changed

  • Plugin config bug fix by @petereon in https://github.com/darrenburns/ward/pull/331
  • Remove some unused 3.6-only code/checks by @darrenburns in https://github.com/darrenburns/ward/pull/326

New Contributors

  • @petereon made their first contribution in https://github.com/darrenburns/ward/pull/331

Full Changelog: https://github.com/darrenburns/ward/compare/release/0.66.0b0...release/0.66.1b0

- Python
Published by darrenburns over 3 years ago

ward - 0.66.0b0 - Drop Python 3.6, plus general housekeeping and version bumps

What's Changed

  • Add entry_point to satisfy conda-build by @cheginit in https://github.com/darrenburns/ward/pull/305
  • Allow Tomli v2 by @hukkin in https://github.com/darrenburns/ward/pull/311
  • Bump actions/setup-python from 2 to 3.1.0 by @dependabot in https://github.com/darrenburns/ward/pull/322
  • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/darrenburns/ward/pull/318
  • Fix 323: Update rich dep version by @taranlu-houzz in https://github.com/darrenburns/ward/pull/324
  • Bump snok/install-poetry from 1.2.1 to 1.3.1 by @dependabot in https://github.com/darrenburns/ward/pull/316
  • Bump actions/setup-python from 3.1.0 to 3.1.2 by @dependabot in https://github.com/darrenburns/ward/pull/325
  • ci: change codecov upload from bash to codecov-action by @AABur in https://github.com/darrenburns/ward/pull/307
  • Add versions to mypy hook's additional dependencies by @mcous in https://github.com/darrenburns/ward/pull/321

New Contributors

  • @cheginit made their first contribution in https://github.com/darrenburns/ward/pull/305
  • @taranlu-houzz made their first contribution in https://github.com/darrenburns/ward/pull/324
  • @mcous made their first contribution in https://github.com/darrenburns/ward/pull/321

Full Changelog: https://github.com/darrenburns/ward/compare/release/0.65.0b0...release/0.66.0b0

- Python
Published by darrenburns almost 4 years ago

ward - 0.65.0b0 - Fixture teardown improvements

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/darrenburns/ward/pull/287
  • Bump snok/install-poetry from 1.1.6 to 1.2.1 by @dependabot in https://github.com/darrenburns/ward/pull/299
  • Fixture teardown improvements - output is now captured correctly by @darrenburns in https://github.com/darrenburns/ward/pull/303

Full Changelog: https://github.com/darrenburns/ward/compare/release/0.64.0b0...release/0.65.0b0

- Python
Published by darrenburns over 4 years ago

ward - 0.64.0b0 - Various fixes and improvements

What's Changed

  • Strict keys in config file - invalid config keys will cause error now by @hukkin in https://github.com/darrenburns/ward/pull/292
  • Tear-down exception handling by @mkuyper in https://github.com/darrenburns/ward/pull/293
  • Allow up-to-date dataclasses, cucumber-tag-expressions and pluggy by @hukkin in https://github.com/darrenburns/ward/pull/295
  • Type check tests by @hukkin in https://github.com/darrenburns/ward/pull/294
  • Remove needless enumerate by @hukkin in https://github.com/darrenburns/ward/pull/296
  • Switch from 3.10 beta to 3.10 release by @darrenburns in https://github.com/darrenburns/ward/pull/302

New Contributors

  • @mkuyper made their first contribution in https://github.com/darrenburns/ward/pull/293

Full Changelog: https://github.com/darrenburns/ward/compare/release/0.63.0b0...release/0.64.0b0

- Python
Published by darrenburns over 4 years ago

ward - 0.63.0b0 - Public type hints, improved output for assertion failures

  • Type hints for Ward are now distributed: via https://github.com/darrenburns/ward/pull/283 and several other PRs (thanks to @hukkin)
  • Every type of assertion failure now results in specialised output showing LHS and RHS values. The assertion message is now also displayed in test output (thanks to @JoshKarpel)

image

- Python
Published by darrenburns over 4 years ago

ward - 0.62.1b0 - Fix bug with "raises"

Fixes bug with raises. Contributed by @jeduden.

- Python
Published by darrenburns over 4 years ago

ward - 0.62.0b0

  • https://github.com/darrenburns/ward/pull/279 - Allow subclasses of specified exception class to pass raises assertion (thanks @jeduden)
  • Adds additional type hints to various modules, enables mypy in them (thanks @hukkin)

- Python
Published by darrenburns over 4 years ago

ward - 0.61.1b0 - Allow Click 7+

Click was pinned to 8+, but this was overly strict since Ward works with both v7 and v8.

- Python
Published by darrenburns over 4 years ago

ward - 0.61.0b0 - Internal changes

  • Switch from toml to tomli to support TOML spec v1.0, and speed up parsing.
  • Small internal change to diffing to support type annotation improvements.

Thanks to @hukkin for these changes!

- Python
Published by darrenburns over 4 years ago

ward - 0.60.1b0 - Bugfix - "fixtures" command broken

The ward fixtures command was failing.

Thanks to @yolong-lin for the fix.

- Python
Published by darrenburns over 4 years ago

ward - 0.60.0b0 - Perf improvements, `live` output, `assert in` pretty output

  • Performance improvement to shave ~15% off of test suite run times
  • Adds live output style
  • Add pretty comparison info for in/not in assertion failures

live output

live_output

Assertion info for in/not in

image

All of these changes were contributed by @JoshKarpel!

- Python
Published by darrenburns over 4 years ago

ward - 0.59.0b0 - Remove termcolor+colorama in favour of Rich for diffs

Ward now outputs diffs using Rich when when an equality check in an assert fails within a test.

This let us remove the final pieces of colorama and termcolor code from Ward.

- Python
Published by darrenburns over 4 years ago

ward - 0.58.0b0 - Mostly bugfixes, one feature change

  • Fixes #140
  • Fixes #239
  • Fixes issue where pyproject.toml defaults were not being applied
  • Fixes issue with dots-module output where it wouldn't display properly if you were in a directory deeper than a running test module.
  • Changes --exclude to work with paths instead of globs.
  • No longer modify sys.modules during collection phase.
  • Fix module.__package__ being set incorrectly in some cases.
  • Fix issue where exclude defined in pyproject.toml was not interacting with CLI supplied --paths correctly.
  • Changes some semantics around running ward with no --path: it now means "run all tests in my project". If you want to get specific, supply a path. If we can't find the project, then running ward is the same as ward --path ..

- Python
Published by darrenburns over 4 years ago

ward - 0.57.2b0 - Refactoring

This release contains no user-facing changes.

- Python
Published by darrenburns almost 5 years ago

ward - 0.57.1b0 - Fix issue with subdirectory traversal

Fixes an issue that was introduced in 0.57.0b0 which prevented Ward from entering nested subdirectories when looking for tests.

- Python
Published by darrenburns almost 5 years ago

ward - 0.57.0b0 - Extensibility via plugins/hooks

Adds initial support for plugins using Pluggy. In this release, 3 hooks are available: before_session, after_session, and preprocess_tests.

- Python
Published by darrenburns almost 5 years ago

ward - 0.56.0b0 - Upgrade to Click 8, tidying up namespaces

  • Upgrades Ward to use Click v8 thanks to @AABur.
  • Splits some modules into internal/public, adds docs on some public APIs, more selectively exposes functionality to users.

- Python
Published by darrenburns almost 5 years ago

ward - 0.55.0b0 - test session progress (inline and progress bar)

Adds --progress-style [inline|bar] % progress through test session to output (enabled by default).

inline

image

bar

image

Thanks again to @JoshKarpel for this contribution 🎉

- Python
Published by darrenburns almost 5 years ago

ward - 0.54.0b0 - Conditional skip and xfail

Adds when param to @skip and @xfail decorators, allowing you to only apply them when some boolean or Callable predicate holds. e.g.

```python @skip("Skipped on Windows", when=platform.system() == "Windows") @test("buildpackagename constructs package name '{pkg}' from '{path}'") def _( pkg=each("", "foo", "foo.bar"), path=each("foo.py", "foo/bar.py", "foo/bar/baz.py"), ): m = ModuleType(name="") m.file_ = path assert buildpackage_name(m) == pkg

@skip("Skipped on Unix", when=platform.system() != "Windows") @test("buildpackagename constructs package name '{pkg}' from '{path}'") def _( pkg=each("", "foo", "foo.bar"), path=each("foo.py", "foo\bar.py", "foo\bar\baz.py"), ): m = ModuleType(name="") m.file_ = path assert buildpackage_name(m) == pkg ```

When run on a non-Windows system:

image

- Python
Published by darrenburns almost 5 years ago

ward - 0.53.0b0 - Support relative imports

Relative imports are now supported in test modules and dependencies.

- Python
Published by darrenburns almost 5 years ago

ward - 0.52.1b0 - test modules added to sys.modules

Test modules will now be added to sys.modules.

- Python
Published by darrenburns almost 5 years ago

ward - 0.52.0b0 - Support for `pdb.set_trace()` and `breakpoint()`

Ward will automatically stop capturing output when a debugging session is started via pdb.set_trace() or breakpoint().

Screenshot 2021-03-22 at 23 24 46

- Python
Published by darrenburns almost 5 years ago

ward - 0.51.2b0 - Fix minor display issue

Fixes a minor display issue where an extra line of space was being displayed above the code snippet output when an assertion failed.

- Python
Published by darrenburns almost 5 years ago

ward - 0.51.1b0 - Lambdas can now be used inside `each`

Bugfix means that using lambdas inside each works as you would expect.

Thanks to @JoshKarpel for contributing this fix!

- Python
Published by darrenburns almost 5 years ago

ward - 0.51.0b0 - `ward fixtures` migrated to use Rich library

ward fixtures allows you to find test fixture dependencies and unused fixtures in your project by printing out

The ward fixtures --show-dependency-trees command now uses the Tree class from Rich to construct it's output:

image

The standard ward fixtures command which simply lists all fixtures that Ward is able to find in a project now also uses Rich for output:

image

Contribution by @JoshKarpel Rich: https://github.com/willmcgugan/rich/

- Python
Published by darrenburns almost 5 years ago

ward - 0.50.0b0 - Command line tab completion

Running ward completions will install a tab completion script for your terminal.

image

- Python
Published by darrenburns about 5 years ago

ward - 0.49.0b0 - Using Rich for test output

Migrates all output associated with ward test to the Rich library for terminal output.

image

- Python
Published by darrenburns about 5 years ago

ward - 0.48.0b0

Refactor and improvements to ward fixtures output, which allows you to view information about fixtures in your project and the tests that use them. Thanks @JoshKarpel!

Screenshot 2020-07-10 at 16 31 27

- Python
Published by darrenburns over 5 years ago

ward - 0.47.0b0

  • Exiting during a test or fixture will trigger a failure #165
  • Bump toml to 0.10.0 #164
  • Add coverage reporting with Codecov #167

Thanks @hoefling and @JoshKarpel!

- Python
Published by darrenburns over 5 years ago

ward - 0.46.0b0

If tests are incorrectly parameterised (e.g. mismatch in each argument counts), they will now fail without running and won't be expanded into parameterised instances.

- Python
Published by darrenburns almost 6 years ago

ward - 0.45.0b0 - adds `--show-diff-symbols` option

The --show-diff-symbols option has been added, which allows you to present diffs using symbols rather than background colours. This improves accessibility and support for CI systems that don't support ANSI terminal output.

Screenshot 2020-05-02 at 16 33 23

- Python
Published by darrenburns almost 6 years ago

ward - 0.44.1b0

Workaround for a bug in virtualenv which means site.getsitepackages() is not available inside virtual envs. https://github.com/pypa/virtualenv/issues/228

- Python
Published by darrenburns almost 6 years ago

ward - 0.44.0b0

Ward will no longer look in site-packages when discovering tests, preventing interference from third party packages that don't exclude tests from their distributions.

Thanks to @anlutro for this!

- Python
Published by darrenburns almost 6 years ago

ward - 0.43.0b0 - `fixtures` subcommand

Adds the fixtures subcommand. By default this command lists out all fixtures present in the project. For example, running ward fixtures gives us the following output:

Screenshot 2020-05-01 at 13 10 12

We can also run ward fixtures --show-dependency-tree to see the relationship between fixtures:

Screenshot 2020-05-01 at 14 44 08

Thanks to @JoshKarpel for this contribution!

- Python
Published by darrenburns almost 6 years ago

ward - 0.42.0b0 - Tagging and querying with tag expressions

You can now tag tests using the tags keyword argument of the @test decorator:

python @test("simple addition", tags=["unit", "regression"]) def _(): assert 1 + 2 == 3

To query these tags, you can use a tag expression.

ward --tags EXPR

More examples of tag expressions:

| Tag Expression | Meaning | | ------------- |-------------| | slow | tests tagged with slow | | unit and integration | tests tagged with both unit and integration | | big and not slow | tests tagged with big that aren't also tagged with slow | | android or ios | tests tagged with either android or ios |

You can use parentheses in tag expressions to change precedence rules to suit your needs.

Thanks @thebigmunch for adding this feature.

- Python
Published by darrenburns almost 6 years ago

ward - 0.41.0b0

  • Migrates Ward to use Poetry instead of Flit/pip.
  • Removes chart output after tests run. The chart was causing me maintenance issues and I don't believe it's worth the effort for something that doesn't provide a great deal of value when it comes down to it.
  • Updates Makefile and contribution guide
  • Updates GitHub Actions to make use of Poetry for dependency management and releasing to PyPI.

- Python
Published by darrenburns almost 6 years ago

ward - 0.40.1b0

A release earlier today (11 March 2020) introduced an issue where Ward would raise an exception when a non-comparison based assertion failed. This release fixes that issue.

- Python
Published by darrenburns almost 6 years ago

ward - 0.40.0b0

User is informed if Ward finds and uses their pyproject.toml. Thanks to @mandarvaze.

- Python
Published by darrenburns almost 6 years ago

ward - 0.39.0b0

Show failure location for all AssertionErrors (even those not involving a comparison and therefore not rewritten). Thanks @jayeshathila!

- Python
Published by darrenburns almost 6 years ago

ward - 0.38.0b0

Changes diff reprs to use pprintpp instead of pprint. This will make diff output look nicer, and typically pep8 compliant.

- Python
Published by darrenburns about 6 years ago

ward - 0.37.0b0

Adds support for async test and fixture definitions.

- Python
Published by darrenburns about 6 years ago

ward - 0.36.0b0

Adds --dry-run option, which allows you to print the tests that Ward collects without actually executing them or their dependencies. Thanks to @DorianCzichotzki!

- Python
Published by darrenburns about 6 years ago

ward - 0.35.0b0

Adds ability to display the N slowest tests after a test run completes using --show-slowest N. Thanks @onlyanegg for this contribution!

- Python
Published by darrenburns about 6 years ago

ward - 0.34.0b0

Adds the ability to use as with raises context manager. Thanks @thilp!

- Python
Published by darrenburns about 6 years ago

ward - 0.33.2b0

Fixes parsing of indented tests.

- Python
Published by darrenburns about 6 years ago

ward - 0.33.1b0

Ensure that the --no-capture-output is passed through to parameterised instances correctly. Output capturing can now be disabled for parameterised tests. This fixes and closes #114.

- Python
Published by darrenburns about 6 years ago

ward - 0.33.0b0

Adds --exclude command line option, allowing you to specify glob patterns of files/directories to ignore when searching for tests. Can be supplied in pyproject.toml too, like so:

toml [tool.ward] exclude = ["glob1", "glob2"]

- Python
Published by darrenburns about 6 years ago

ward - 0.32.1b0

Fixes issue where --path expected a directory, and didn't allow a module to be passed directly.

- Python
Published by darrenburns about 6 years ago

ward - 0.32.0b0

Adds a __main__.py. Thanks to @thebigmunch.

- Python
Published by darrenburns about 6 years ago

ward - 0.31.1b0

Fix a bug where a subset of assertions involving comparisons would result in tests raising a NameError. Thanks to /u/Broolucks on Reddit for reporting this!

- Python
Published by darrenburns about 6 years ago

ward - 0.31.0b0

Fixes alignment of test descriptions in output when number of parameterised instances exceeds 9. Closes: https://github.com/darrenburns/ward/issues/103. Thanks to @thebigmunch for this contribution!

- Python
Published by darrenburns about 6 years ago

ward - 0.30.1b0

Closes #102 ...

Fixes a bug around importing something from a module containing tests causing tests to sometimes run more than once. This PR ensures we only run tests for the module they're defined in, and not again in modules they're imported into. Also massively improves test coverage around this area.

- Python
Published by darrenburns about 6 years ago

ward - 0.30.0b0

Added --no-capture-output flag to disable output capturing.

- Python
Published by darrenburns about 6 years ago

ward - 0.29.1b0

Merged PR #99 - fixes possibility of tests repeating for modules at different paths and same module name by ensuring they have unique identifiers.

- Python
Published by darrenburns about 6 years ago

ward - 0.29.0b0

Introduce assertion rewriting for all possible types of binary comparison. Previously, assertion rewriting only applied to assert x == y (now it also applies to assert x in y, assert x >= y, etc)

- Python
Published by darrenburns about 6 years ago

ward - 0.28.0b0

Removes the expect API. Adds assert rewriting, currently just for assertions of the form assert x == y.

- Python
Published by darrenburns about 6 years ago

ward - 0.27.1b0

Hotfix for path error when no pyproject.toml supplied and ward ran without --path.

- Python
Published by darrenburns about 6 years ago

ward - 0.27.0b0

Add support for pyproject.toml. For more info: https://wardpy.com/guide/config

- Python
Published by darrenburns about 6 years ago

ward - 0.26.0b0

Switches from setup.py to use the flit build/distribution system. Thanks to @AndydeCleyre.

- Python
Published by darrenburns about 6 years ago

ward - 0.25.0b0

Adds --order option, with "standard" and "random". Allows you to specify the order in which tests should run.

- Python
Published by darrenburns about 6 years ago

ward - 0.24.1b0

Contains https://github.com/darrenburns/ward/pull/83, a fix for the faulty interaction between parameterised tests and module scoped fixtures.

- Python
Published by darrenburns about 6 years ago

ward - 0.24.0b0

Relaxes the dependency versions to reduce the chances of conflict: https://github.com/darrenburns/ward/pull/82

- Python
Published by darrenburns about 6 years ago

ward - 0.23.0b0

Adds the ability to specify --path multiple times. Thanks to @AlecJ for the bulk of this!

- Python
Published by darrenburns about 6 years ago

ward - 0.22.0b0

Adds --version command, and platform info at the start of test runs.

- Python
Published by darrenburns about 6 years ago

ward - 0.21.0a0

  • If a test description doesnt fit in the width of the terminal, it will be wrapped to multiple lines and left aligned.
  • Dots taking up multiple lines will align in the same way.

- Python
Published by darrenburns about 6 years ago

ward - 0.20.0a0

  • Adds --test-output-style options (test-per-line, dots-module, dots-global)
  • Tidies up output in some areas

- Python
Published by darrenburns about 6 years ago

ward - 0.19.0a0

  • Improves readability of the output by spacing things out a bit more.
  • Handling user keyboard interrupts by outputting the results of all tests that had run up until that point.
  • Only show the colour keys in the chart if they're present in the chart.

- Python
Published by darrenburns over 6 years ago

ward - 0.18.0a0

Adds the ability to use string formatting notation in test descriptions, which Ward can fill in using the values that it injects into your test.

- Python
Published by darrenburns over 6 years ago

ward - 0.17.1a0

Fixes a regression with the @using where the bound_args it set were not being respected later in the test running stage.

- Python
Published by darrenburns over 6 years ago

ward - 0.17.0a0

Rewrite of fixture caching to make it more scalable.

This will allow us to support arbitrary fixture scopes much easier (e.g. Hypothesis examples can each have their own scope).

The rewrite also removes the awkward requirement that tests had to run in sequential order. This means we can now support things like randomised test order, and multi-process mode.

- Python
Published by darrenburns over 6 years ago

ward - 0.16.0a0

  • Adds @using decorator as an alternative means of injecting fixtures. This will enable support for Hypothesis.

- Python
Published by darrenburns over 6 years ago

ward - 0.15.0a0

  • Adds parameterised testing capabilities to tests using the each function.
  • Tidy up of test generation code (@khusrokarim)
  • Fixes bug where raw values injected into fixtures (@khusrokarim)

- Python
Published by darrenburns over 6 years ago

ward - 0.14.1a0

Hotfix re-enables output capturing and removes some docs that have been transferred to ward-docs.

- Python
Published by darrenburns over 6 years ago

ward - 0.14.0a0

Fixture scoping (global, module, test).

- Python
Published by darrenburns over 6 years ago

ward - 0.13.0a0

Removing a lot of older code around name matching fixtures.

- Python
Published by darrenburns over 6 years ago

ward - 0.12.0a0

Fixtures without the name matching magic.

- Python
Published by darrenburns over 6 years ago

ward - 0.11.1a0

Updating screenshot to GitHub URL so that it appears on PyPI correctly.

- Python
Published by darrenburns over 6 years ago

ward - 0.11.0a0

Descriptive testing

- Python
Published by darrenburns over 6 years ago

ward - 0.10.0a0

  • Significantly expands on the expect API, and improves test coverage around it.
  • Improves legibility of traceback output in terminals using colours.

- Python
Published by darrenburns over 6 years ago

ward - 0.9.1a0

Allow xfail to be imported like from ward import xfail.

- Python
Published by darrenburns over 6 years ago

ward - 0.9.0a0

Improves readability of diffs

- Python
Published by darrenburns over 6 years ago

ward - 0.8.0a0

Adds stderr/stdout capturing during test and fixture execution.

- Python
Published by darrenburns over 6 years ago

ward - 0.7.0a0

  • Adds xfail decorator, allowing you to mark tests that you expect to fail.
    • If an xfail test passes, the test result is an "unexpected pass" (XPASS), and will result in a failing test run.

- Python
Published by darrenburns over 6 years ago

ward - 0.6.5a0

- Python
Published by darrenburns over 6 years ago

ward - 0.6.4a0

- Python
Published by darrenburns over 6 years ago

ward - 0.6.3a0

- Python
Published by darrenburns over 6 years ago

ward - 0.6.2a0

- Python
Published by darrenburns over 6 years ago

ward - 0.6.1a0

- Python
Published by darrenburns over 6 years ago

ward - 0.6.0a0

Internal initial support for XFAIL.

- Python
Published by darrenburns over 6 years ago

ward - 0.5.0a0

  • Experimental, limited Windows support.

- Python
Published by darrenburns over 6 years ago

ward - 0.4.0a0

  • Adds timing information to output
  • Deletes lots of old output code from initial spike
  • Cleans up output by adding more spacing, less erroneous characters

- Python
Published by darrenburns over 6 years ago

ward - 0.3.0a0

  • Fixtures supporting tear down code
  • Rework of output

- Python
Published by darrenburns over 6 years ago