(no title)
xavdid | 29 days ago
Put another way: your dry code should do everything up until the point that database writes / API calls / etc actually happen. Don't bail too early
xavdid | 29 days ago
Put another way: your dry code should do everything up until the point that database writes / API calls / etc actually happen. Don't bail too early
ziml77|28 days ago
marhee|29 days ago
madeofpalk|29 days ago
Right - so the dry-run has to actually do as much of 'what will happen' as possible, except the actual things.
You want to put the check as far down, close to the 'action' as possible. You don't want any additional business logic gated by the dry run check.
friendzis|29 days ago
Not really. Testing is a way to increase confidence that code does what it is specified to do, because it is cheaper than full-blown formal analysis :)
The problem raised by OP here is granularity. Operation like `update(record, field, value)` is itself a tree of smaller sub-operations that may do some permissions checking, locking, network calls, even checking for presence of record if it has upsert semantics, all of which could fail. A dry run with a plan that is too coarse can succeed while the actual operation fails over things left unchecked.
xavdid|29 days ago
For little scripts, I'm not writing unit tests- running it is the test. But I want to be able to iterate without side effects, so it's important that the dry mode be as representative as possible for what'll happen when something is run for real.
lanyard-textile|29 days ago