- Put the Juju version in the environment as well as the JujuContext (#1559)
- require ops 2.18.0 or better as a hot-fix against accidentally introduced incompatibility (#1551)
- Use :memory: as the unit state storage location for ops.testing (#1494)
- Make Context and Manager variadic types in testing by @Batalex (#1445)
- Require the same object to be in the testing state as in the event (#1468)
- Raise ModelError on unknown/error status set in Scenario (#1417)
- Use the right ops-scenario for building the docs (#1470)
- Clearly deprecate Harness in the testing how-tos (#1508)
- Fix Markdown syntax in ops.testing readme (#1502)
- All the ops-scenario publish actions need to be done in testing/ (#1479)
- Correctly point PyPI publishing to the ops-scenario packages (#1514)
- Add a small set of ops.testing benchmark tests (#1504)
- Use ops._main._Manager in Scenario (#1491)
- Don't use the max-positional-args parent class for JujuLogLine (#1495)
- Cache signature structure in ops.testing state classes (#1499)
- Use _JujuContext in Scenario (#1459)
- Fix the testing src-layout structure and use relative imports (#1431)
- Use a slightly more strict type for
AnyJson
- Add a
py.typed
file
ops.Model.get_relation
should not raise when a relation with the specified ID does not exist
- Adjustments to handle the upcoming release of ops 2.17
- Fix broken Python 3.8 compatibility.
- Support for testing Pebble check events
- Container exec mocking can match against a command prefix
- Inspect a list of the commands that a charm has
exec
'd in a container - Add consistency checks for
StoredState
- Specifying your event is now done via
ctx.on
attributes - The context manager is accessed via the
Context
object - State collections are frozensets instead of lists
- Most classes now expect at least some arguments to be passed as keywords
- Secret tests are much simpler - particularly, revision numbers do not need to be managed