Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/scripts/probe_issue.py
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,19 @@ def test_deploy(charm, juju: jubilant.Juju):
kepler + kosmos; m- charms: meteor + micron) so the only meaningful \
difference is the configuration you changed.

**Choose observables that survive the full event sequence.** When your \
test observes a side effect of an event handler (e.g. a status message, a \
log record, a stored value), trace what happens *after* the event you are \
testing. In charm frameworks, one event often triggers others — a config \
change can re-fire `pebble-ready`, a relation change can trigger \
`config-changed`, and so on. If a later handler overwrites or clears your \
observable, your test will fail for reasons unrelated to the claim. Before \
finalizing your test, read every handler in the charm and ask: "will any \
other handler fire after the one I'm testing, and will it clobber what I'm \
observing?" If so, choose a different observable (e.g. `StoredState`, a \
file in the container, `workload_version`) or adjust the handler so it \
preserves the observable.

### Differential testing with xfail

Sometimes a claim is best tested by showing that the SAME test behaves \
Expand Down