예제 #1
0
    def test_get_jobs_for_user_different_users_some_jobs(self):
        num_of_jobs_user1 = ONE
        # Add one job to the tabfile for user1
        test_jobs_user1 = create_test_tab(num_of_jobs_user1, user1)
        api.set_jobs(test_jobs_user1, user1)
        jobs_list_user1 = api.get_jobs_for_user(user1)

        num_of_jobs_user2 = ZERO
        # Add zero jobs to the tabfile for user2
        test_jobs_user2 = create_test_tab(num_of_jobs_user2, user2)
        api.set_jobs(test_jobs_user2, user2)
        jobs_list_user2 = api.get_jobs_for_user(user2)

        num_of_jobs_user3 = SOME
        # Add some jobs to the tabfile for user3
        test_jobs_user3 = create_test_tab(num_of_jobs_user3, user3)
        api.set_jobs(test_jobs_user3, user3)
        jobs_list_user3 = api.get_jobs_for_user(user3)

        # Verify that the jobs list for user1 contains
        # the correct number of jobs
        self.assertEqual(len(jobs_list_user1), num_of_jobs_user1)
        # Verify that the jobs list for user2 contains
        # the correct number of jobs
        self.assertEqual(len(jobs_list_user2), num_of_jobs_user2)
        # Verify that the jobs list for user3 contains
        # the correct number of jobs
        self.assertEqual(len(jobs_list_user3), num_of_jobs_user3)
        # Verify that the information we get matches what was set
        check_job_fields(self, jobs_list_user1, test_jobs_user1, user1)
        # Verify that the information we get matches what was set
        check_job_fields(self, jobs_list_user2, test_jobs_user2, user2)
        # Verify that the information we get matches what was set
        check_job_fields(self, jobs_list_user3, test_jobs_user3, user3)
예제 #2
0
    def test_get_jobs_for_user_different_users_some_jobs(self):
        num_of_jobs_user1 = ONE
        # Add one job to the tabfile for user1
        test_jobs_user1 = create_test_tab(num_of_jobs_user1, user1)
        api.set_jobs(test_jobs_user1, user1)
        jobs_list_user1 = api.get_jobs_for_user(user1)

        num_of_jobs_user2 = ZERO
        # Add zero jobs to the tabfile for user2
        test_jobs_user2 = create_test_tab(num_of_jobs_user2, user2)
        api.set_jobs(test_jobs_user2, user2)
        jobs_list_user2 = api.get_jobs_for_user(user2)

        num_of_jobs_user3 = SOME
        # Add some jobs to the tabfile for user3
        test_jobs_user3 = create_test_tab(num_of_jobs_user3, user3)
        api.set_jobs(test_jobs_user3, user3)
        jobs_list_user3 = api.get_jobs_for_user(user3)

        # Verify that the jobs list for user1 contains
        # the correct number of jobs
        self.assertEqual(len(jobs_list_user1), num_of_jobs_user1)
        # Verify that the jobs list for user2 contains
        # the correct number of jobs
        self.assertEqual(len(jobs_list_user2), num_of_jobs_user2)
        # Verify that the jobs list for user3 contains
        # the correct number of jobs
        self.assertEqual(len(jobs_list_user3), num_of_jobs_user3)
        # Verify that the information we get matches what was set
        check_job_fields(self, jobs_list_user1, test_jobs_user1, user1)
        # Verify that the information we get matches what was set
        check_job_fields(self, jobs_list_user2, test_jobs_user2, user2)
        # Verify that the information we get matches what was set
        check_job_fields(self, jobs_list_user3, test_jobs_user3, user3)
예제 #3
0
 def test_remove_schedules_many_schedules_random_schedules(self):
     # Number of jobs and floor(requests) + ceiling(requests) are equal
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     # Leave one schedule remaining for comparison at the end
     num_of_requests = num_of_jobs - 1
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     test_schedules = []
     for schedule in range(num_of_schedules):
         test_schedules.append(api.Schedule(datetime.now(),
                               test_jobs[schedule], test_workers[0]))
     api.add_schedules(test_schedules)
     # Kill number of requests random schedules in the list
     for request in range(num_of_requests):
         random_schedule = random.randrange(len(test_schedules))
         api.remove_schedule(test_schedules.pop(random_schedule))
     schedules_list = []
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the schedules list contains exactly one schedule
     self.assertEqual(len(schedules_list), 1)
     # Verify that the correct remaining schedule is still in the list
     check_schedule_fields(self, schedules_list, test_schedules)
예제 #4
0
 def test_remove_schedule_many_schedules(self):
     # Number of jobs and floor(requests) + ceiling(requests) are equal
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     # Automatic flooring care of Python
     num_of_requests = num_of_jobs / 2
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for many jobs
     test_schedules = []
     for schedule in range(num_of_schedules):
         test_schedules.append(
             api.Schedule(datetime.now(), test_jobs[schedule],
                          test_workers[0]))
     api.add_schedules(test_schedules)
     # Kill the floor of half of the workers in the list
     for request in range(num_of_requests):
         api.remove_schedule(test_schedules.pop())
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the correct remaining schedules are still in the list
     check_schedule_fields(self, schedules_list, test_schedules)
     # Remove all remaining test schedules
     while test_schedules:
         api.remove_schedule(test_schedules.pop())
     # Try to get schedules from an empty pool
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the next worker does not exist
     self.assertFalse(len(schedules_list))
예제 #5
0
 def test_remove_schedules_many_schedules_random_schedules(self):
     # Number of jobs and floor(requests) + ceiling(requests) are equal
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     # Leave one schedule remaining for comparison at the end
     num_of_requests = num_of_jobs - 1
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     test_schedules = []
     for schedule in range(num_of_schedules):
         test_schedules.append(
             api.Schedule(datetime.now(), test_jobs[schedule],
                          test_workers[0]))
     api.add_schedules(test_schedules)
     # Kill number of requests random schedules in the list
     for request in range(num_of_requests):
         random_schedule = random.randrange(len(test_schedules))
         api.remove_schedule(test_schedules.pop(random_schedule))
     schedules_list = []
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the schedules list contains exactly one schedule
     self.assertEqual(len(schedules_list), 1)
     # Verify that the correct remaining schedule is still in the list
     check_schedule_fields(self, schedules_list, test_schedules)
예제 #6
0
 def test_remove_schedule_many_schedules(self):
     # Number of jobs and floor(requests) + ceiling(requests) are equal
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     # Automatic flooring care of Python
     num_of_requests = num_of_jobs / 2
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for many jobs
     test_schedules = []
     for schedule in range(num_of_schedules):
         test_schedules.append(api.Schedule(datetime.now(),
                               test_jobs[schedule], test_workers[0]))
     api.add_schedules(test_schedules)
     # Kill the floor of half of the workers in the list
     for request in range(num_of_requests):
         api.remove_schedule(test_schedules.pop())
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the correct remaining schedules are still in the list
     check_schedule_fields(self, schedules_list, test_schedules)
     # Remove all remaining test schedules
     while test_schedules:
         api.remove_schedule(test_schedules.pop())
     # Try to get schedules from an empty pool
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the next worker does not exist
     self.assertFalse(len(schedules_list))
예제 #7
0
 def test_get_schedules_many_workers_many_schedules(self):
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     num_of_workers = num_of_schedules
     num_of_workers = MANY
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create many workers and add them to a list for bookkeeping
     for worker in range(num_of_workers):
         test_workers.append(api.create_worker())
     # Create a schedule belonging to each worker representing the only job
     test_schedules = []
     for worker in test_workers:
         for job in jobs_list:
             test_schedules.append(api.Schedule(datetime.now(),
                                   job, worker))
     api.add_schedules(test_schedules)
     # Aggregate each worker's schedules into a single list for comparison
     # with test schedules
     schedules_for_workers = []
     for worker in test_workers:
         schedules_list = api.get_schedules(worker)
         schedules_for_workers.extend(schedules_list)
     # Verify that the information we get matches what was set
     check_schedule_fields(self, schedules_for_workers,
                           test_schedules)
예제 #8
0
 def test_get_schedules_many_workers_many_schedules(self):
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     num_of_workers = num_of_schedules
     num_of_workers = MANY
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create many workers and add them to a list for bookkeeping
     for worker in range(num_of_workers):
         test_workers.append(api.create_worker())
     # Create a schedule belonging to each worker representing the only job
     test_schedules = []
     for worker in test_workers:
         for job in jobs_list:
             test_schedules.append(api.Schedule(datetime.now(), job,
                                                worker))
     api.add_schedules(test_schedules)
     # Aggregate each worker's schedules into a single list for comparison
     # with test schedules
     schedules_for_workers = []
     for worker in test_workers:
         schedules_list = api.get_schedules(worker)
         schedules_for_workers.extend(schedules_list)
     # Verify that the information we get matches what was set
     check_schedule_fields(self, schedules_for_workers, test_schedules)
예제 #9
0
 def test_get_crontab_empty_jobs(self):
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     crontab = api.get_crontab(user1)
     # Verify that the crontab is empty
     self.assertEqual(crontab, False)
예제 #10
0
 def test_get_jobs_for_user_empty_jobs(self):
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list_user1 = api.get_jobs_for_user(user1)
     # Verify that the jobs list for user1 is empty
     self.assertFalse(len(jobs_list_user1))
예제 #11
0
 def test_get_jobs_for_user_empty_jobs(self):
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list_user1 = api.get_jobs_for_user(user1)
     # Verify that the jobs list for user1 is empty
     self.assertFalse(len(jobs_list_user1))
예제 #12
0
 def test_get_crontab_empty_jobs(self):
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     crontab = api.get_crontab(user1)
     # Verify that the crontab is empty
     self.assertEqual(crontab, False)
예제 #13
0
 def test_get_jobs_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     self.assertEqual(len(jobs_list), num_of_jobs)
     # Verify that the information we get matches what was set
     check_job_fields(self, jobs_list, test_jobs, user1)
예제 #14
0
 def test_get_crontab_different_users_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs for another user from crontab owner
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     api.set_crontab(crontab, user2)
     test_crontab = api.get_crontab(user2)
     self.assertEqual(crontab, test_crontab)
     # Append crontab for another user
     test_jobs = create_test_tab(num_of_jobs, user3)
     api.set_jobs(test_jobs, user3)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     api.set_crontab(crontab, user3)
     test_crontab = api.get_crontab(user3)
     self.assertEqual(crontab, test_crontab)
예제 #15
0
 def test_get_crontab_different_users_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs for another user from crontab owner
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     api.set_crontab(crontab, user2)
     test_crontab = api.get_crontab(user2)
     self.assertEqual(crontab, test_crontab)
     # Append crontab for another user
     test_jobs = create_test_tab(num_of_jobs, user3)
     api.set_jobs(test_jobs, user3)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     api.set_crontab(crontab, user3)
     test_crontab = api.get_crontab(user3)
     self.assertEqual(crontab, test_crontab)
예제 #16
0
 def test_get_jobs_for_user_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list_user1 = api.get_jobs_for_user(user1)
     # Verify that the jobs list for user1
     # contains the correct number of jobs
     self.assertEqual(len(jobs_list_user1), num_of_jobs)
예제 #17
0
 def test_get_jobs_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     self.assertEqual(len(jobs_list), num_of_jobs)
     # Verify that the information we get matches what was set
     check_job_fields(self, jobs_list, test_jobs, user1)
예제 #18
0
 def test_get_jobs_for_user_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list_user1 = api.get_jobs_for_user(user1)
     # Verify that the jobs list for user1
     # contains the correct number of jobs
     self.assertEqual(len(jobs_list_user1), num_of_jobs)
예제 #19
0
 def test_get_jobs_one_job(self):
     num_of_jobs = ONE
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     # Verify that the jobs list contains exactly one job
     self.assertEqual(len(jobs_list), num_of_jobs)
     # Verify that the information we get matches what was set
     check_job_fields(self, jobs_list, test_jobs, user1)
예제 #20
0
 def test_get_crontab_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     api.set_crontab(crontab, user1)
     test_crontab = api.get_crontab(user1)
     self.assertEqual(crontab, test_crontab)
예제 #21
0
 def test_get_jobs_empty_jobs(self):
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     # Verify that the jobs list is empty
     self.assertEqual(len(jobs_list), num_of_jobs)
     # Verify that the information we get matches what was set
     check_job_fields(self, jobs_list, test_jobs, user1)
예제 #22
0
 def test_get_crontab_many_jobs(self):
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     api.set_crontab(crontab, user1)
     test_crontab = api.get_crontab(user1)
     self.assertEqual(crontab, test_crontab)
예제 #23
0
 def test_get_jobs_one_job(self):
     num_of_jobs = ONE
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     # Verify that the jobs list contains exactly one job
     self.assertEqual(len(jobs_list), num_of_jobs)
     # Verify that the information we get matches what was set
     check_job_fields(self, jobs_list, test_jobs, user1)
예제 #24
0
 def test_get_jobs_empty_jobs(self):
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     # Verify that the jobs list is empty
     self.assertEqual(len(jobs_list), num_of_jobs)
     # Verify that the information we get matches what was set
     check_job_fields(self, jobs_list, test_jobs, user1)
예제 #25
0
 def test_get_jobs_for_user_some_users_empty_jobs(self):
     jobs_list_user4 = api.get_jobs_for_user(user4)
     # Verify that the jobs_list for user4 is empty
     self.assertFalse(len(jobs_list_user4))
     num_of_jobs_user1 = ONE
     # Add one job to the tabfile user1
     test_jobs_user1 = create_test_tab(num_of_jobs_user1, user1)
     api.set_jobs(test_jobs_user1, user1)
     jobs_list_user4 = api.get_jobs_for_user(user4)
     # Verify that the jobs_list for user4 is empty
     self.assertFalse(len(jobs_list_user4))
예제 #26
0
 def test_get_jobs_for_user_some_users_empty_jobs(self):
     jobs_list_user4 = api.get_jobs_for_user(user4)
     # Verify that the jobs_list for user4 is empty
     self.assertFalse(len(jobs_list_user4))
     num_of_jobs_user1 = ONE
     # Add one job to the tabfile user1
     test_jobs_user1 = create_test_tab(num_of_jobs_user1, user1)
     api.set_jobs(test_jobs_user1, user1)
     jobs_list_user4 = api.get_jobs_for_user(user4)
     # Verify that the jobs_list for user4 is empty
     self.assertFalse(len(jobs_list_user4))
예제 #27
0
 def test_set_crontab_one_job(self):
     num_of_jobs = ONE
     # Create a crontab with one jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     test_crontab = api.get_crontab(user1)
     self.assertEquals(test_crontab, False)
     api.set_crontab(crontab, user1)
     test_crontab = api.get_crontab(user1)
     self.assertEqual(crontab, test_crontab)
예제 #28
0
 def test_set_crontab_one_job(self):
     num_of_jobs = ONE
     # Create a crontab with one jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     with open(TAB_FILE, 'r') as tabfile:
         crontab = tabfile.read()
     test_crontab = api.get_crontab(user1)
     self.assertEquals(test_crontab, False)
     api.set_crontab(crontab, user1)
     test_crontab = api.get_crontab(user1)
     self.assertEqual(crontab, test_crontab)
예제 #29
0
 def test_set_job_time_one_job(self):
     checkpoint1 = datetime.now()
     num_of_jobs = ONE
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop the only job in the list to modify its time
     job = test_jobs.pop()
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1
                     and job.last_time_run < checkpoint2)
예제 #30
0
 def test_set_job_time_random_job_from_many(self):
     checkpoint1 = datetime.now()
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop a random job in list to modify its time
     job = test_jobs.pop(random.randrange(len(test_jobs)))
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1
                     and job.last_time_run < checkpoint2)
예제 #31
0
 def test_set_job_time_one_job(self):
     checkpoint1 = datetime.now()
     num_of_jobs = ONE
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop the only job in the list to modify its time
     job = test_jobs.pop()
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1 and
                     job.last_time_run < checkpoint2)
예제 #32
0
 def test_set_job_time_random_job_from_many(self):
     checkpoint1 = datetime.now()
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop a random job in list to modify its time
     job = test_jobs.pop(random.randrange(len(test_jobs)))
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1 and
                     job.last_time_run < checkpoint2)
예제 #33
0
 def test_set_jobs_empty_jobs(self):
     checkpoint1 = datetime.now()
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Query metadata for the database file creation time
     db_creation_time = datetime.fromtimestamp(
         os.stat(api.FILE_NAME).st_mtime)
     # We are comparing different orders of time, so offset by one second
     new_time = db_creation_time.replace(second=db_creation_time.second + 1)
     checkpoint2 = datetime.now()
     checkpoint2 = checkpoint2.replace(second=checkpoint2.second + 1)
     # Verify that the jobs have been set just now
     self.assertTrue(new_time > checkpoint1 and new_time < checkpoint2)
예제 #34
0
 def test_set_jobs_empty_jobs(self):
     checkpoint1 = datetime.now()
     num_of_jobs = ZERO
     # Create a crontab with zero jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Query metadata for the database file creation time
     db_creation_time = datetime.fromtimestamp(
                        os.stat(api.FILE_NAME).st_mtime)
     # We are comparing different orders of time, so offset by one second
     new_time = db_creation_time.replace(second=db_creation_time.second + 1)
     checkpoint2 = datetime.now()
     checkpoint2 = checkpoint2.replace(second=checkpoint2.second + 1)
     # Verify that the jobs have been set just now
     self.assertTrue(new_time > checkpoint1 and new_time < checkpoint2)
예제 #35
0
 def test_add_schedules_one_job_one_schedule(self):
     num_of_jobs = ONE
     num_of_schedules = num_of_jobs
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for the only job
     test_schedules = []
     test_schedules.append(
         api.Schedule(datetime.now(), test_jobs[0], test_workers[0]))
     api.add_schedules(test_schedules)
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the schedules list contains exactly one schedule
     self.assertEqual(len(schedules_list), num_of_schedules)
예제 #36
0
 def test_get_schedules_one_worker_many_schedules(self):
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for the only job
     test_schedules = []
     for job in range(num_of_jobs):
         test_schedules.append(
             api.Schedule(datetime.now(), test_jobs[job], test_workers[0]))
     api.add_schedules(test_schedules)
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the information we get matches what was set
     check_schedule_fields(self, schedules_list, test_schedules)
예제 #37
0
 def test_get_schedules_one_worker_many_schedules(self):
     num_of_jobs = MANY
     num_of_schedules = num_of_jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for the only job
     test_schedules = []
     for job in range(num_of_jobs):
         test_schedules.append(api.Schedule(datetime.now(), test_jobs[job],
                               test_workers[0]))
     api.add_schedules(test_schedules)
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the information we get matches what was set
     check_schedule_fields(self, schedules_list, test_schedules)
예제 #38
0
 def test_add_schedules_one_job_one_schedule(self):
     num_of_jobs = ONE
     num_of_schedules = num_of_jobs
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for the only job
     test_schedules = []
     test_schedules.append(api.Schedule(datetime.now(), test_jobs[0],
                           test_workers[0]))
     api.add_schedules(test_schedules)
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the schedules list contains exactly one schedule
     self.assertEqual(len(schedules_list), num_of_schedules)
예제 #39
0
 def test_remove_schedule_one_schedule(self):
     num_of_jobs = ONE
     num_of_schedules = num_of_jobs
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for the only job
     test_schedules = []
     test_schedules.append(
         api.Schedule(datetime.now(), test_jobs[0], test_workers[0]))
     api.add_schedules(test_schedules)
     # Kill the only schedule in the list
     api.remove_schedule(test_schedules[0])
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the schedules list is empty
     self.assertFalse(len(schedules_list))
예제 #40
0
 def test_remove_schedule_one_schedule(self):
     num_of_jobs = ONE
     num_of_schedules = num_of_jobs
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     jobs_list = api.get_jobs()
     test_workers = []
     # Create one worker and add them to a list for bookkeeping
     test_workers.append(api.create_worker())
     # Create a schedule for the only job
     test_schedules = []
     test_schedules.append(api.Schedule(datetime.now(), test_jobs[0],
                           test_workers[0]))
     api.add_schedules(test_schedules)
     # Kill the only schedule in the list
     api.remove_schedule(test_schedules[0])
     schedules_list = api.get_schedules(test_workers[0])
     # Verify that the schedules list is empty
     self.assertFalse(len(schedules_list))