code: def test_sleep_time_calculation(self):
      past_job = self.get_dummy_job_catalog_entry(
          True, "past_job", datetime.now() - timedelta(seconds=10)
      )
      future_job = self.get_dummy_job_catalog_entry(
          True, "future_job", datetime.now() + timedelta(seconds=20)
      )
  
      job_scheduler = JobScheduler(MagicMock())
  
      self.assertEqual(job_scheduler._get_sleep_time(past_job), 0)
      self.assertGreaterEqual(
          job_scheduler._get_sleep_time(future_job), 10
      )
      self.assertEqual(job_scheduler._get_sleep_time(None), 30)
  
file_path: evadb/test/unit_tests/utils/test_job_scheduler.py
imports: import unittest
  from datetime import datetime, timedelta
  from mock import MagicMock
  from evadb.catalog.models.utils import JobCatalogEntry
  from evadb.utils.job_scheduler import JobScheduler
label_desc: Use image node_id 3 for calling the JobSchedulerTests obj's underlying member method code with example usage: obj.test_sleep_time_calculation() without return types