Some of the pallets storage migrations fail the idempotent test because in the pre_upgrade method there is an ensure! check to make sure that the current storage version is the one that applies for the migration, even if the actual on_runtime_upgrade does not fail if the storage has already been upgraded. So is it bad practice to perform this kind of ensure! checks in the pre_upgrade method? Ex. The assets pallet migration performs this type of check.