def METHOD_NAME(self):
    """Checks that `self.upstream.dry_run_metadata` satisfies `self.requirements`.
    Raises
    ------
    UnsatistfiedRequirementsError
    """
    # If a subclass has complex rules for preconditions then
    # override this method.
    unsatisfied = find_unsatisfied_requirements(self.upstream.dry_run_metadata(),
                                                self.requirements)
    if unsatisfied:
        msg = str(self) + " not satisfied by:\n" + str(unsatisfied)
        raise UnsatisfiedRequirementsError(msg)