def time_job_flow_idle(self, jf):
     if (is_job_flow_bootstrapping(jf) or
         is_job_flow_running(jf) or
         is_job_flow_done(jf)):
         return timedelta(0)
     else:
         return self.now - time_last_active(jf)
 def assertJobFlowIs(
     self, jf,
     bootstrapping=False,
     done=False,
     from_end_of_hour=timedelta(hours=1),
     has_pending_steps=False,
     idle_for=timedelta(0),
     pool_hash=None,
     pool_name=None,
     running=False,
     streaming=True,
 ):
     self.assertEqual(bootstrapping, is_job_flow_bootstrapping(jf))
     self.assertEqual(done, is_job_flow_done(jf))
     self.assertEqual(from_end_of_hour, est_time_to_hour(jf, self.now))
     self.assertEqual(has_pending_steps, job_flow_has_pending_steps(jf))
     self.assertEqual(idle_for, self.time_job_flow_idle(jf))
     self.assertEqual((pool_hash, pool_name), pool_hash_and_name(jf))
     self.assertEqual(running, is_job_flow_running(jf))
     self.assertEqual(streaming, is_job_flow_streaming(jf))