Features and Improvements
- Use ruff for linting and code style; reformat code base
- Migrate packaging from
setup.py
to purepyproject.toml
. - Add instructions to measure test coverage to the documentation
- Cover Python 3.9 to 3.12 and Django 3.2, 4.2 and 5.0, drop Python 3.5, 3.6 and Django 2.2 and 3.0 support
- Bump Behave requirement to 1.2.7.dev3/4/5 (allows TOML support and option to change the Behave TestRunner)
- New option to change the Django TestRunner
Features and Improvements
- Add experimental Page Object pattern helpers
- Cover Python 3.8, drop Python 3.4 and Django 1.11 to 2.1 support
Bugfixes
- Replace deprecated multi_db by suggested
databases
attribute - Remove obsolete Python 2 compatibility code
Features and Improvements
- Add Bandit security linter to CI setup
- Minor refactorings to please linters
- Update and clarify documentation
- Cover Django 2.2 with test matrix, remove Django 2.0
Bugfixes
- Fix fixtures decorator behavior (reset between scenarios)
Features and Improvements
- Added option to set multi_db on TestCase
Bugfixes
- Made fixtures decorator compatible with newly released behave
Features and Improvements
- Added
django_ready
hook for running setup code within the django environment
Features and Improvements
- Added decorator to load fixtures
- Updated django integration logic
Features and Improvements
- Added
--simple
command line option to run tests using the regularTestCase
class instead ofStaticLiveServerTestCase
Features and Improvements
- Behave's short form arguments are now accepted (e.g.
-i
for--include
) - Added
--keepdb
short form argument, -k - Prefix conflicting command line options with
--behave
Bugfixes
- Fixed specifying paths didn't work
Features and Improvements
- Replace optparse with argparse
- Support Django 1.8 + 1.9 + 1.10
Features and Improvements
- Added the
--keepdb
flag to reuse the existing test database instead of recreating it for every test run. (Django >= 1.8 only) - Overhaul tests to use Tox and pytest for a better testing experience.
Bugfixes
- Fixed bug where some behave commands do not work
Bugfixes
- Fixed bug where positional arguments don't get sent to behave.
Bugfixes
- Fixed bug where invalid arguments are passed onto behave, making the command fail to execute.
Features and Improvements
- Integration with
behave
is now done via monkey patching. Including theenvironment.before_scenario()
andenvironment.after_scenario()
function calls in yourenvironment.py
file is no longer needed. - A new CLI option,
--use-existing-database
, has been added. See the Configuration docs.
Bugfixes
- Calling
python manage.py behave --dry-run
does not create a test database any longer.
Features and Improvements
context.get_url()
. URL helper attached to context with built-in reverse resolution as a handy shortcut.
Features and Improvements
- Fixture loading. You can now load your fixtures by setting
context.fixtures
. - behave-django now supports all versions of Django
Bugfixes
- The behave command should now correctly return non-zero exit codes when a test fails.
Features and Improvements
- You can now have a
.behaverc
in your project's root directory. You can specify where your feature directories are in this file, among other things. See the behave docs on configuration files. - Removed
BEHAVE\_FEATURES
setting in favor of using behave's configuration file
Features and Improvements
- Behave management command now accepts behave command line arguments
BEHAVE\_FEATURES
settings added for multiple feature directories
Bugfixes
- Removed test apps and projects from the release package
- Initial release