def test_release(self): task_id = "test_release_task_id" threshold = 30 retval = EnforceSingleTask.lock(task_id, seconds_expire=threshold) self.assertTrue(retval) # Subsequent call should fail since it has been 'locked' self.assertFalse(EnforceSingleTask.lock(task_id, seconds_expire=threshold)) self.assertIsNotNone(EnforceSingleTask.release(task_id)) self.assertTrue(EnforceSingleTask.lock(task_id, seconds_expire=threshold))
def test_release_from_diff_pid(self): # Create an entry from a dummy pid task_id = "test_release_from_diff_pid_task_id" pid = os.getpid() + 1 entry = SingleTaskInfo(task_id=task_id, owner_pid=pid) entry.save() self.assertEquals(1, SingleTaskInfo.objects(task_id=task_id).count()) self.assertIsNone(EnforceSingleTask.release(task_id)) # Verify the remove did nothing because our 'pid' didn't match the entrie's pid self.assertEquals(1, SingleTaskInfo.objects(task_id=task_id).count())