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.runby @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
richdep 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-expressionsandpluggyby @hukkin in https://github.com/darrenburns/ward/pull/295 - Type check tests by @hukkin in https://github.com/darrenburns/ward/pull/294
- Remove needless
enumerateby @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)

- 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.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
tomltotomlito 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
liveoutput style - Add pretty comparison info for
in/not inassertion failures
live output

Assertion info for in/not in

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.tomldefaults were not being applied - Fixes issue with
dots-moduleoutput where it wouldn't display properly if you were in a directory deeper than a running test module. - Changes
--excludeto work with paths instead of globs. - No longer modify
sys.modulesduring collection phase. - Fix
module.__package__being set incorrectly in some cases. - Fix issue where
excludedefined inpyproject.tomlwas not interacting with CLI supplied--paths correctly. - Changes some semantics around running
wardwith 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 runningwardis the same asward --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

bar

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:

- 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().

- 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:

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:

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.

- 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.

- Python
Published by darrenburns about 5 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.

- 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:

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

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.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.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.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
