'Returns an iterable of strings that explain why this dependency wasn\'t met.
:param ti: the task instance to see if this dependency is met for
:type ti: TaskInstance
:param session: database session
:type session: Session
:param dep_context: The context this dependency is being checked under that stores
state that can be used by this dependency.
:type dep_context: BaseDepContext'

@provide_session
def get_failure_reasons(self, ti, session, dep_context=None):

    for dep_status in self.get_dep_statuses(ti, session, dep_context):
        if (not dep_status.passed):
            (yield dep_status.reason)
