Changelog
- [Feature]: Support python 3.9
- [Feature] #1032: Allow specifying directories when reading tests from files
- [Bug]: Fix to filter class based test based on the tagging in parameter
- [Bug] #1034: Added filtering during session resume
- [Bug] #899: Fix slash.exclude decorator for fixtures
- [Bug]: Fix iter_suite_file_paths to get test path of the tests as relative if relative path is provided in suite file
- [Feature]: Require newer emport and dessert versions (use importlib instead of imp)
- [Bug] #1007: Safe set markers on exceptions
- [Bug] #1013: Allow slash.use_fixtures application on other fixtures
1.9.0 02-12-2019
- [Feature]: Added a plugin which provides links to test logs which have been archived by a CI system
- [Feature]: Added support for tagging test parameterization values
- [Feature] #598: Drop support for python version < 3.6
- [Feature] #979: Change Ordered set implementation from orderedset to ordered-set, as the former is not maintained anymore
- [Feature] #982: Read files as binary to avoid decoding errors
- [Feature] #241: Support ‘slashconf’ directory
- [Feature] #998: Choose IPython colors scheme for interactive test
- [Bug]: Corrected behaviour of float and int test details in xunit output
- [Bug] #985: Fix a bug where Slash did not expand parameterizations used through use_fixture properly
- [Bug] #991: Fix detection of yield-fixture when combined with parametrization
1.8.0 03-07-2019
- [Feature]: Resuming sessions now supports
--failed-only
and --unstarted-only
to control which tests to resume
- [Feature]: Add
slash.ignored_warnings
context
- [Feature]: Add tests and suite execution time to xunit plugin
- [Feature] #950: Slash now emits a log record when handling fatal errors
- [Feature] #925: Support was added for terminals with light backgrounds by changing
log.console_theme.dark_background
configuration
- [Feature] #952: Added support for getting the currently active scope (
test
, module
or session
) through the new get_current_scope
API. session.scope_manager.current_scope
is also available.
- [Feature] #452: Drop support for old-style assertions
- [Feature] #945: Drop support for deprecated arguments of
add_cleanup
- [Bug] #928: Fixed a bug causing requirements to leak across sibling test classes
- [Bug] #934: Parallel sessions now honor fatal exceptions encountered in worker sessions
- [Bug] #930: Restore behavior of exceptions propagating out of the test_start or test_end hooks. Correct behavior is for those to fail the test (thanks @pierreluctg)
1.7.9 09-03-2019
- [Bug]: Revert console coloring change, as it does not behave consistently across different terminals
1.7.8 04-03-2019
- [Bug] #926: Return code for failed sessions was changed to 1 (from -1)
- [Bug] #925: Fix background color for session start and test collection messages
1.7.7 21-01-2019
- [Bug]: Fix swallowing of broken-pipe errors from console reporter - will not add errors
- [Bug]: Several Windows-specific fixes (thanks @pierreluctg)
- [Bug]: Fix test_start triggering when exceptions are thrown in class-based tests (thanks @pierreluctg)
- [Bug] #907: Fix parallel worker timeout issues
1.7.6 16-12-2018
- [Bug] #895: Wrap log_file_closed hook with
handling_exceptions
- [Bug] #904: Fix list-plugins output for new normalized names
- [Bug]: Fix parallel execution on Windows systems (thanks @pierreluctg!)
- [Bug]: Fix state saving of unstarted tests during interruptions
1.7.5 23-10-2018
- [Bug] #897: Fix handling of
-k
patterns beginning with not
1.7.4 23-10-2018
- [Bug]: Fix backslash-python dependency check
1.7.3 21-10-2018
- [Bug] #878: Fix notification plugin’s handling of backslash plugin with no active session
- [Bug] #879: Fix handling exceptions during
entering_debugger
hook triggered by Application.__exit__()
- [Bug]: Correctly call fixture.test_end on test errors (Thanks @pierreluctg!)
1.7.2 11-10-2018
- [Bug] #882: Fix fixture reuse logic regression causing fixtures to be evaluated more than once in some cases
- [Bug] #876: Support disabling convertion of log error to slash-error by extra’s
capture=False
- [Feature] #797: Add ability to filter tests of
slash list
with -k
- [Feature] #799: Tags can now be set more than once on a test, providing that they are set in the same way (same value or without a value)
- [Feature] #693: Remove backwards compatibility for
log.errors_subpath
configuration. Use log.highlights_subpath
configuration instead.
- [Feature] #803: Add exception class for internal Slash errors:
SlashInternalError
- [Feature] #650: Fixtures can now be tagged the same way as tests
- [Feature] #824: Support API to determine cleanup phase -
get_current_cleanup_phase()
and is_in_cleanup()
- [Feature] #738: Collect warnings that were omitted before session started
- [Feature] #648: Add support for use_fixtures decotaror
- [Feature] #843: Add
slash.app_quit
hook, a hook that is called whenever the Slash process finishes. This is useful to allow certain plugins to perform important cleanups on session-wide errors
- [Feature] #836: Resuming sessions now supports
--failed-first
and --unstarted-first
to control the resuming priority
- [Feature] #12: Added a signal handling plugin (see documentation for more details)
- [Feature] #825: Support capturing error logs as actual errors, when
run.capture.error_logs_as_errors
is enabled
- [Bug] #810: Fixed handling of notification messages containing curly braces
- [Bug] #812: Fixed debug_if_needed when called before session initialized
- [Bug] #804: Swallow IO Errors from console reporter
- [Bug] #846: Use AND operator between
ignore_warnings
parameters
- [Bug] #864: Fix handling of exceptions during
_run_single_test()
before test started
- [Bug] #837: Fix handling exceptions during
_log_file_handler_context
- [Bug] #820: Fix error handling when capturing distilled tracebacks
- [Bug]: Fix support for Python 3.7
- [Feature] #782: Added new hooks:
before_session_cleanup
, after_session_end
- [Feature] #779: Added
config.root.run.project_name
, which can be configured to hold the name of the current project. It defaults to the name of the directory in which your project’s .slashrc is located
- [Feature] #785: Plugins can now be marked to indicate whether or not they support parallel
execution, using
slash.plugins.parallel_mode
. To avoid errors, Slash assumes that unmarked
plugins do not support parallel execution.
- [Feature] #528:
slash.exclude
can now exclude combinations of parameter values
- [Feature] #769: Added a new configuration flag,
log.show_raw_param_values
, defaulting to False
. If set to True, log lines for beginnings of tests will contain actual parametrization values instead of format-safe strings.
- [Feature] #771: Keyword arguments to
registers_on
now get forwarded to Gossip’s register
API
- [Bug] #772: Fix handling exceptions which raised from None in interactive session
- [Bug] #783: Session errors in children are now handled and reported when running with parallel
- [Bug] #767: Fixed traceback variable capture for cases where
self=None
- [Feature] #662: Change email notification icon based on session success status
- [Feature] #660: Add configuration for notifications plugin
--notify-only-on-failure
- [Feature] #661: Support PDB notifications by notifications plugin
- [Feature] #675: Emit native python warnings for logbook warning level
- [Feature] #686:
assert_raises
raises ExpectedExceptionNotCaught
if exception wasn’t caught also allowing inspection of the expected exception object
- [Feature] #689: Added a new hook,
interruption_added
, for registering exceptions which cause test/session interruptions
- [Feature] #658: Deprecate
PluginInterface.get_config()
and rename it to PluginInterface.get_default_config()
- [Feature] #692: Enhance errors summary log to session highlights log (configuration changed:
log.errors_subpath
-> log.highlights_subpath
)
- [Feature] #685: use.X is now a shortcut for use(‘x’) for fixture annotations
- [Feature]: Suite files can now have a
repeat: X
marker to make the test run multiple times (Thanks @pierreluctg!)
- [Feature]: During the execution of
error_added
hooks, traceback frame objects now have python_frame
, containing the original Pythonic frame that yielded them. Those are cleared soon after the hook is called.
- [Feature] #704: Error objects now have their respective
exc_info
attribute containing the exception info for the current info (if available). This deprecates the use of the locals
/globals
attributes on traceback frames.
- [Feature] #698: By setting
log.traceback_variables
to True
, traceback variable values will now be written to the debug log upon failures/errors
- [Feature] #712: Added
--pdb-filter
- a new command-line flag that allows the user to enter pdb only on specific caught exceptions, based on pattern matching (similar to -k
)
- [Feature]: Support fixture keyword arguments for
generator_fixture
- [Feature] #723: Add configuration for resume state path location
- [Feature] #711: Logs can now optionally be compressed on-the-fly through the
log.compression.enabled
configuration parameter
- [Feature]:
-X
can now be used to turn off stop-on-error behavior. Useful if you have it on by default through a configuration file
- [Feature] #719: Added log.core_log_level, allowing limiting the verbosity of logs initiated from Slash itself
- [Feature] #681: Added a new hook,
log_file_closed
, and added configuration log.cleanup
to enable removing log files after they are closed
- [Feature] #702: Rename log.traceback_level to log.console_traceback_level
- [Feature] #740: session.results.current is now a complete synonym for slash.context.result
- [Feature]: Add
slash rerun
- given a session_id, run all the tests of this session
- [Feature] #747: session.results.global_result.is_success() now returns False if any test in the session isn’t successful
- [Feature] #755:
timestamp
can now be used when formatting log path names
- [Feature] #757:
slash list tests
now accepts the --warnings-as-errors
flag, making it treat warnings it encounters as errors
- [Feature] #752: Added
slash.ignore_warnings
to filter unwanted warnings during sessions
- [Feature] #664: Added
metadata.set_file_path
, allowing integrations to set a custom file path to be associated with a loaded test
- [Feature]: Added a configuration option preventing
slash.g
from being available in interactive namespaces
- [Feature] #697: Added
slash.before_interactive_shell
hook
- [Feature] #590: Add support for labeling parametrization variations
- [Bug] #679: Fix coloring console for non TTY stdout
- [Bug] #684: Optimize test loading with
--repeat-each
and --repeat-all
- [Bug]: Fix tests loading order for some FS types
- [Bug] #671: Help for
slash resume
is now more helpful
- [Bug] #710: Fix sorting when repeat-all option is use
- [Bug] #669: Session-scoped fixtures now properly register cleanups on session scope as expected
- [Bug] #714: Session cleanups now happen under the global result object
- [Bug] #721: Add timeout to sending emails through SMTP
- [Bug] #700: Fixed handling of non-exception errors in session scope
- [Bug] #701: Fixed error in coverage reporter cleanup
- [Bug] #665: Support overriding notifications plugin’s
from_email
by configuration
- [Bug] #668: Properly initialize colorama under Windows
- [Bug] #670: Improve handling of interruption exceptions - custom interruption exceptions will now properly cause the session and test to trigger the
session_interrupt
and test_interrupt
hooks. Unexpected exceptions like SystemExit
from within tests are now also reported properly instead of silently ignored
- [Bug]: Add
current_config
property to plugins
- [Bug]: Restore default enabled state for Prowl/NMA/Pushbullet notifications
- [Bug]: Add ability to include details in email notifications
- [Feature] #647: Support installing plugins as “internal” – thus not letting users disable or enable them through the command line
- [Feature] #647: Support internal plugins
- [Feature] #651: Add
host_fqdn
and host_name
attributes to session
- [Feature] #662: Improve notifications plugin, add support for email notifications
- [Feature]: Added new hook
prepare_notification
to process notifications before being sent by the notifications plugin
1.3.0 24-07-2017
- [Feature]: Assertions coming from plugins and modules loaded from the project’s
.slashrc
now also have assertion rewriting introspection enabled
- [Feature] #556: Long variable representations are now capped by default when distilling tracebacks
- [Feature]: Slash now detects test functions being redefined, hiding previous tests, and warns about it
- [Feature]: Added
session.results.has_fatal_errors
to check for fatal errors within a session
- [Feature] #595: Add allowing_exceptions context letting tests allow specific exceptions in selective context
- [Feature] #600: Use vintage package for deprecations
- [Feature] #592: Added
exception_attributes
dict to Error
objects
- [Feature]: Added
SLASH_USER_SETTINGS=x
environment variable to give a possibility to override the user slashrc file
- [Feature] #633: When using the handling_exceptions, it is now possible to obtain the exception object that was handled
- [Feature] #635:
slash run
now supports --force-color
/--no-color
flags.
- [Feature] #617: Support
inhibit_unhandled_exception_traceback
- [Feature] #642: Support multiple registrations on the same plugin method with
plugins.registers_on
- [Feature] #596: Slash now supports a flag to disable assertion introspection on assertions containing messages (
run.message_assertion_introspection
)
- [Feature] #213: Added parallel execution capability (still considered experimental) - tests can be run in parallel by multiple subprocess “workers”. See the documentation for more information
- [Bug]: Several Windows-specific fixes (thanks Pierre-Luc Tessier Gagné)
- [Bug]: Honor run.default_sources configuration when using slash list (thanks Pierre-Luc Tessier Gagné)
- [Bug] #606: Swallow python warnings during ast.parse
1.2.5 19-06-2017
- [Bug]: Add exception_str shortcut for future compatibility on error objects
1.2.4 19-06-2017
- [Bug] #580:
tests_loaded
hooks now get called with a list of tests including the interactive test if applicable
- [Bug] #581: Fix
slash.exclude
to work across fixture namespaces
1.2.2 29-05-2017
- [Bug] #564: Fix test collection bug causing tests to not be loaded with some plugins
1.2.0 30-04-2017
- [Feature] #502: Added
session_interrupt
hook for when sessions are interrupted
- [Feature] #511: Support adding external logs
Result.add_extra_log_path
which will be retrieved by Result.get_log_paths()
- [Feature] #507: Test id can now be obtained via
slash.context.test.id
- [Feature] #467: Yield fixtures are now automatically detected by Slash – using
yield_fixture
explicitly is no longer required
- [Feature] #497: Major overhaul of CLI mechanics – improve help message and usage, as well as cleaner error exits during the session configuration phase
- [Feature] #519: Add
--no-output
flag for slash list
- [Feature] #512:
slash list-config
now receives a path filter for config paths to display
- [Feature] #513: Add deep parametrization info (including nested fixtures) to the metadata variation info
- [Feature] #524:
slash list
, slash list-config
and slash list-plugins
now supports --force-color
/--no-color
flags. The default changed from colored to colored only for tty
- [Feature] #476:
slash resume
was greatly improved, and can now also fetch resumed tests from a recorded session in Backslash, if its plugin is configured
- [Feature] #544: Added
debug.debugger
configuration to enable specifying preferred debugger. You can now pass -o debug.debugger=ipdb
to prefer ipdb over pudb, for example
- [Feature] #508: Added optional
end_message
argument to notify_if_slow_context
, allowing better verbosity of long operations
- [Feature] #529: Switch to PBR
- [Bug] #510: Explicitly fail fixtures which name is valid for tests (currently:
test_
prefix)
- [Bug] #516: Fire test_interrupt earlier and properly mark session as interrupted when a test is interrupted
- [Bug] #490: Fixed behavior of plugin dependencies in cases involving mixed usage of plugin-level and hook-level dependencies
- [Bug] #551: Fix stopping on error behavior when errors are reported on previous tests
1.1.0 22-11-2016
- [Feature] #466: Add –relative-paths flag to
slash list
- [Feature] #344: Exceptions recorded with
handling_exceptions
context now properly report the stack frames above the call
- [Feature]: Added the
entering_debugger
hook to be called before actually entering a debugger
- [Feature] #468: Slash now detects tests that accidentally contain
yield
statements and fails accordingly
- [Feature] #461:
yield_fixture
now honors the scope
argument
- [Feature] #403: add
slash list-plugins
to show available plugins and related information
- [Feature] #462: Add
log.errors_subpath
to enable log files only recording added errors and failures.
- [Feature] #400:
slash.skipped
decorator is now implemented through the requirements mechanism. This saves a lot of time in unnecessary setup, and allows multiple skips to be assigned to a single test
- [Feature] #384: Accumulate logs in the configuration phase of sessions and emit them to the session log. Until now this happened before logging gets configured so the logs would get lost
- [Feature] #195: Added
this.test_start
and this.test_end
to enable fixture-specific test start and end hooks while they’re active
- [Feature] #287: Add support for “facts” in test results, intended for coverage reports over relatively narrow sets of values (like OS, product configuration etc.)
- [Feature] #352: Suite files can now contain filters on specific items via a comment beginning with
filter:
, e.g. /path/to/test.py # filter: x and not y
- [Feature] #362: Add ability to intervene during test loading and change run order. This is done with a new
tests_loaded
hook and a new field in the test metadata controlling the sort order. See the cookbook for more details
- [Feature] #359: Add trace logging of fixture values, including dependent fixtures
- [Feature] #417:
add_error
/add_failure
can now receive both message and exc_info information
- [Feature] #484:
slash list
now indicates fixtures that are overriding outer fixtures (e.g. from slashconf.py
)
- [Feature] #369: Add
slash.exclude
to only skip specific parametrizations of a specific test or a dependent fixture. See the cookbook section for more details
- [Feature] #485: xunit plugin now saves the run results even when the session doesn’t end gracefully (Thanks @eplaut)
- [Bug] #464: Fix exc_info leaks outside of
assert_raises
& handling_exceptions
- [Bug] #477: Fix assert_raises with message for un-raised exceptions
- [Bug] #479: When installing and activating plugins and activation fails due to incompatibility, the erroneous plugins are now automatically uninstalled
- [Bug] #483: Properly handle possible exceptions when examining traceback object attributes
1.0.2 19-10-2016
- [Bug] #481: Fixed tuple parameters for fixtures
1.0.1 07-08-2016
- [Bug] #457: Fixed initialization order for autouse fixtures
- [Bug] #464: Fix reraising behavior from handling_exceptions
1.0.0 26-06-2016
- [Feature] #412: Add is_in_test_code to traceback json
- [Feature] #413: Test names inside files are now sorted
- [Feature] #416: Add –no-params for “slash list”
- [Feature] #427: Drop support for Python 2.6
- [Feature] #428: Requirements using functions can now have these functions return tuples of (fullfilled, requirement_message) specifying the requirement message to display
- [Feature] #430: Added coverage plugin to generate code coverage report at the end of the run (
--with-coverage
)
- [Feature] #435: Added
swallow_types
argument to exception_handling context to enable selective swallowing of specific exceptions
- [Feature] #436:
slash list
now fails by default if no tests are listed. This can be overriden by specifying --allow-empty
- [Feature] #424: slash internal app context can now be instructed to avoid reporting to console (use
report=False
)
- [Feature] #437: Added
test_avoided
hook to be called when tests are completely skipped (e.g. requirements)
- [Feature] #423: Added support for generator fixtures
- [Feature] #401: session_end no longer called on plugins when session_start isn’t called (e.g. due to errors with other plugins)
- [Feature] #441:
variation
in test metadata now contains both id
and values
. The former is a unique identification of the test variation, whereas the latter contains the actual fixture/parameter values when the test is run
- [Feature] #439: Added support
yield_fixture
- [Feature] #276: Added support for fixture aliases using
slash.use
- [Feature] #407: Added
--repeat-all
option for repeating the entire suite several times
- [Feature] #397: Native Python warnings are now captured during testing sessions
- [Feature] #446: Exception tracebacks now include instance attributes to make debugging easier
- [Feature] #447: Added a more stable sorting logic for cartesian products of parametrizations
- [Bug] #442: Prevent
session_end
from being called when session_start
doesn’t complete successfully
- [Bug] #432: Fixed a bug where session cleanups happened before
test_end
hooks are fired
- [Bug] #434: Fixed a bug where class names were not deduced properly when loading tests
- [Bug] #409: Improve session startup/shutdown logic to avoid several potentially invalid states
- [Bug] #410: Fixed bug causing incorrect test frame highlighting in tracebacks
- [Feature] #339: Errors in interactive session (but not ones originating from IPython input itself) are now recorded as test errors
- [Feature] #379: Allow exception marks to be used on both exception classes and exception values
- [Feature] #385: Add test details to xunit plugin output
- [Feature] #386: Make slash list support -f and other configuration parameters
- [Feature] #391: Add result.details, giving more options to adding/appending test details
- [Feature] #395: Add __slash__.variation, enabling investigation of exact parametrization of tests
- [Feature] #398: Allow specifying exc_info for add_error
- [Feature] #381:
handling_exceptions
now doesn’t handle exceptions which are currently expected by assert_raises
- [Feature] #388:
-k
can now be specified multiple times, implying AND relationship
- [Feature] #405: Add
--show-tags
flag to slash list
- [Feature] #348: Color test code differently when displaying tracebacks
- [Bug] #402: TerminatedException now causes interactive sessions to terminate
- [Bug] #406: Fix error reporting for session scoped cleanups
- [Bug] #408: Fix handling of cleanups registered from within cleanups
- [Bug] #390: Fix handling of add_failure and add_error with message strings in xunit plugin
- [Bug] #389: Fix deduction of function names for parametrized tests
- [Bug] #383: Fix fixture passing to
before
and after
- [Bug] #376: Fix xunit bug when using skip decorators without reasons
- [Bug] #374: Fix issue with xunit plugin
- [Feature] #349: Plugin configuration is now installed in the installation phase, not activation phase
- [Feature] #371: Add warning_added hook
- [Feature] #366: Added
configure
hook which is called after command-line processing but before plugin activation
- [Feature] #366:
--with-X
and --without-X
don’t immediately activate plugins, but rather use activate_later
/ deactivate_later
- [Feature] #366: Added
activate_later
and deactivate_later
to the plugin manager, allowing plugins to be collected into a ‘pending activation’ set, later activated with activate_pending_plugins
- [Feature] #368: add slash list-config command
- [Feature] #361: Demote slash logs to TRACE level
- [Bug] #373: Fix test collection progress when outputting to non-ttys
- [Bug] #372: Fixed logbook compatibility issue
- [Bug] #350: Fixed scope mismatch bug when hooks raise exceptions
- [Feature] #319: Add class_name metadata property for method tests
- [Feature] #324: Add test for cleanups with fatal exceptions
- [Feature] #240: Add support for test tags
- [Feature] #332: Add ability to filter by test tags - you can now filter with
-k tag:sometag
, -k sometag=2
and -k "not sometag=3"
- [Feature] #333: Allow customization of console colors
- [Feature] #337: Set tb level to 2 by default
- [Feature] #233: slash.parametrize: allow argument tuples to be specified
- [Feature] #279: Add option to silence manual add_error tracebacks (
-o show_manual_errors_tb=no
)
- [Feature] #295: SIGTERM handling for stopping sessions gracefully
- [Feature] #321: add Error.mark_fatal() to enable calls to mark_fatal right after add_error
- [Feature] #335: Add ‘needs’ and ‘provides’ to plugins, to provide fine-grained flow control over plugin calling
- [Feature] #347: Add slash.context.fixture to point at the ‘this’ variable of the currently computing fixture
- [Bug] #320: Fix scope mechanism to allow cleanups to be added from test_start hooks
- [Bug] #322: Fix behavior of skips thrown from cleanup callbacks
- [Bug] #322: Refactored a great deal of the test running logic for easier maintenance and better solve some corner cases
- [Bug] #329: handling_exceptions(swallow=True) now does not swallow SkipTest exceptions
- [Bug] #341: Make sure tests are garbage collected after running
- [Feature] #308: Support registering private methods in plugins using
registers_on
- [Feature] #311: Support plugin methods avoiding hook registrations with
registers_on(None)
- [Feature] #312: Add before_session_start hook
- [Feature] #314: Added
Session.get_total_num_tests
for returning the number of tests expected to run in a session
- [Bug]: fix strict emport dependency
- [Feature] #300: Add log.unified_session_log flag to make session log contain all logs from all tests
- [Feature] #306: Allow class variables in plugins
- [Feature] #307: Interactive test is now a first-class test and allows any operation that is allowed from within a regular test
- [Feature] #271: Add passthrough_types=TYPES parameter to handling_exceptions context
- [Feature] #275: Add get_no_deprecations_context to disable deprecation messages temporarily
- [Feature] #274: Add optional separation between console log format and file log format
- [Feature] #280: Add optional message argument to
assert_raises
- [Feature] #170: Add optional
scope
argument to add_cleanup
, controlling when the cleanup should take place
- [Feature] #267: Scoped cleanups: associate errors in cleanups to their respective result object. This means that errors can be added to tests after they finish from now on.
- [Feature] #286: Better handling of unrun tests when using x or similar. Count of unrun tests is now reported instead of detailed console line for each unrun test.
- [Feature] #282: Better handling of fixture dependency cycles
- [Feature] #289: Added
get_config
optional method to plugins, allowing them to supplement configuration to config.root.plugin_config.<plugin_name>
- [Bug] #288: Fixed accidental log file line truncation
- [Bug] #285: Fixed representation of fixture values that should not be printable (strings with slashes, for instance)
- [Bug] #270: Fixed handling of directory names and class/method names in suite files
- [Feature] #264: Allow specifying location of .slashrc via configuration
- [Feature] #263: Support writing colors to log files
- [Feature] #257:
slash fixtures
is now slash list
, and learned the ability to list both fixtures and tests
- [Feature]: start_interactive_shell now automatically adds the contents of slash.g to the interactive namespace
- [Feature] #268: Treat relative paths listed in suite files (-f) relative to the file’s location
- [Feature] #269: Add option to specify suite files within suite files
- [Feature]: Slash now emits a console message when session_start handlers take too long
- [Feature] #249: Added @slash.repeat decorator to repeat tests multiple times
- [Feature] #140: Added
--repeat-each
command line argument to repeat each test multiple times
- [Feature] #258: Added
hooks.error_added
, a hook that is called when an error is added to a test result or to a global result. Also works when errors are added after the test has ended.
- [Feature] #261: Added a traceback to manually added errors (throush
slash.add_error
and friends)
- [Feature]: Add
slash.session.reporter.report_fancy_message
- [Feature] #177: Added ‘slash fixtures’ command line utility to list available fixtures
- [Feature] #211: Added
log.last_session_dir_symlink
to create symlinks to log directory of the last run session
- [Feature] #220:
slash.add_cleanup
no longer receives arbitrary positional args or keyword args. The old form is still allowed for now but issues a deprecation warning.
- [Feature] #226: Implemented
slash.hooks.before_test_cleanups
.
- [Feature] #189: add add_success_only_cleanup
- [Feature] #196: Add ‘slash version’ to display current version
- [Feature] #199: A separate configuration for traceback verbosity level (
log.traceback_level
, also controlled via --tb=[0-5]
)
- [Feature] #203: Group result output by tests, not by error type
- [Feature] #209: Test cleanups are now called before fixture cleanups
- [Feature] #16: Added
slash.requires
decorator to formally specify test requirements
- [Feature] #214: Added
slash.nofixtures
decorator to opt out of automatic fixture deduction.
- [Bug] #204: Fixed a console formatting issue causing empty lines to be emitted without reason
0.9.2 24-11-2014
- [Bug] #198: fix test_methodname accidentally starting with a dot
0.9.0 30-10-2014
- [Feature] #183: Add slash.parameters.toggle as a shortcut for iterating
[True, False]
- [Feature] #179: Documentation overhaul
- [Feature] #190: Support __slash__.test_index0 and __slash__.test_index1 for easier enumeration in logs
- [Feature] #194: add assert_almost_equal
0.8.0 12-10-2014
- [Feature] #171: Add error times to console reports
- [Feature] #160: Add option to serialize warnings to dicts
- [Feature]: Log symlinks can now be relative paths (considrered relative to the logging root directory)
- [Feature] #162: Test loading and other setup operations now happen before
session_start
, causing faster failing on simple errors
- [Feature] #163: Added
-k
for selecting tests by substrings
- [Feature] #159: Add optional ‘last failed’ symlink to point to last failed test log
- [Feature] #167: Fixed erroneous behavior in which skipped tasks after using
-x
caused log symlinks to move
- [Feature]: removed the test contexts facility introduced in earlier versions. The implementation was partial and had serious drawbacks, and is inferior to fixtures.
- [Feature] #127: py.test style fixture support, major overhaul of tests and loading code.
0.7.1 14-07-2014
- [Bug]: Fixed error summary reporting
0.7.0 07-07-2014
- [Feature] #144: Add option to colorize console logs in custom colors
- [Feature] #149: Make console logs interact nicely with the console reporter non-log output
- [Feature] #146: Add test id and error/failure enumeration in test details
- [Feature] #145: Add option to save symlinks to the last session log and last test log
- [Feature] #150: Add log links to results when reporting to console
- [Feature] #137: Fixed parameter iteration across inheritence trees
- [Feature]: Renamed
debug_hooks
to debug_hook_handlers
. Debugging hook handlers will only trigger for slash hooks.
- [Feature] #148: Detailed tracebacks now emitted to log file
- [Feature] #152: Truncate long log lines in the console output
- [Feature] #153: Report warnings at the end of sessions
0.6.1 27-05-2014
- [Bug] #143: Use gossip’s inernal handler exception hook to debug hook failures when
--pdb
is used
- [Bug] #142: Allow registering plugin methods on custom hooks
0.6.0 21-05-2014
- [Feature]: Overhaul the reporting mechanism, make output more similar to py.test’s, including better error reporting.
- [Feature] #128: Slash now loads tests eagerly, failing earlier for bad imports etc. This might change in the future to be an opt-out behavior (change back to lazy loading)
- [Feature] #129: Overhaul rerunning logic (now called ‘resume’)
- [Feature] #141: Add slash.utils.deprecated to mark internal facilities bound for removal
- [Feature] #138: Move to gossip as hook framework.
- [Feature]: Added assertion introspection via AST rewrite, borrowed from pytest.
0.5.0 09-04-2014
- [Feature] #132: Support for providing hook requirements to help resolving callback order (useful on initialization)
0.4.0 15-12-2013
- [Feature] #115: Add session.logging.extra_handlers to enable adding custom handlers to tests and the session itself
- [Feature] #120: Support multiple exception types in should.raise_exception
- [Feature] #121: Support ‘append’ for CLI arguments deduced from config
- [Feature] #116: Support ‘-f’ to specify one or more files containing lists of files to run
- [Feature] #114: Support for fatal exception marks
0.3.0 18-11-2013
- [Feature] #113: Add option to debug hook exceptions (-o debug.debug_hooks=yes)
0.2.0 20-10-2013
- [Feature] #19: Add ability to add non-exception errors and failures to test results
- [Feature] #96: Add option to specify logging format
- [Feature] #103: Add context.test_filename, context.test_classname, context.test_methodname
- [Feature] #75: Support matching by parameters in FQN, Support running specific or partial tests via FQN
- [Feature]: Add should.be_empty, should.not_be_empty
- [Feature] #69: Move slash.session to slash.core.session. slash.session is now the session context proxy, as documented
- [Feature]: Documentation additions and enhancements
- [Feature]: Coverage via coveralls
- [Feature] #26: Support test rerunning via “slash rerun”
- [Feature] #72: Clarify errors in plugins section
- [Feature] #74: Enable local .slashrc file
- [Feature] #45: Add option for specifying default tests to run
- [Feature] #5: add_critical_cleanup for adding cleanups that are always called (even on interruptions)
- [Feature] #3: Handle KeyboardInterrupts (quit fast), added the test_interrupt hook
- [Feature] #48:, #54: handle import errors and improve captured exceptions
- [Feature]: Renamed slash.fixture to slash.g (fixture is an overloaded term that will maybe refer to test contexts down the road)
- [Feature] #40:: Added test context support - you can now decorate tests to provide externally implemented contexts for more flexible setups
- [Feature] #46:: Added plugin.activate() to provide plugins with the ability to control what happens upon activation