コード例 #1
0
def test_setters():
    job = Job('storageA', 'storageB', '~/.data/', [True, True, True], user)

    timestamp = datetime.datetime.now()
    job.set_start_time(timestamp)
    job.set_end_time(timestamp)
    job.set_enqueue_time(timestamp)
    assert job.get_start_time() == timestamp
    assert job.get_end_time() == timestamp
    assert job.get_enqueue_time() == timestamp

    job.set_status(JobStatus.DONE)
    assert job.get_status() == JobStatus.DONE
    assert job.has_start_notification() == job.has_start_notification()
    assert job.has_end_notification() == job.has_end_notification()
    assert job.has_error_notification() == job.has_error_notification()
コード例 #2
0
def test_get_log_different_days():
    """
    /SA240/
    """
    try:
        user1 = User.get_user_by_username("loguser2")
        jobs = Job.get_jobs([user1.get_username()], [
            JobStatus.PAUSED, JobStatus.QUEUED, JobStatus.ACTIVE,
            JobStatus.DONE
        ])
        for current_job in jobs:
            current_job.set_status(JobStatus.ACTIVE)
    except UserNotFoundException:
        user1 = User("loguser2", "token")

    timestamp = datetime.date.today() - datetime.timedelta(days=2)

    active_job_ids_user1 = []
    job1 = Job('storageA', 'storageB', '~/.data/', [True, True, True], user1)
    job1.set_status(JobStatus.DONE)
    job1.set_start_time(timestamp)
    job1.set_end_time(timestamp)
    job1.set_enqueue_time(timestamp)
    active_job_ids_user1.append(job1.get_job_id())

    job2 = Job('storageA', 'storageB', '~/.data/', [True, True, True], user1)
    job2.set_status(JobStatus.DONE)
    job2.set_start_time(timestamp)
    job2.set_end_time(timestamp)
    job2.set_enqueue_time(timestamp)

    active_job_ids_user1.append(job2.get_job_id())
    job3 = Job('storageA', 'storageB', '~/.data/', [True, True, True], user1)
    job3.set_status(JobStatus.DONE)
    job3.set_start_time(timestamp)
    job3.set_end_time(timestamp)
    job3.set_enqueue_time(timestamp)
    active_job_ids_user1.append(job3.get_job_id())

    # Log for last 3 days
    request = {"days": "3", "user": "******", "for_user": "******"}

    json_string = json.dumps(request)
    response = json.loads(app.get_log(json_string))

    assert len(response) == 3
    for job in response:
        assert job['job_id'] in active_job_ids_user1

    # Log for last day
    request = {"days": "1", "user": "******", "for_user": "******"}

    json_string = json.dumps(request)
    response = json.loads(app.get_log(json_string))

    assert len(response) == 0
コード例 #3
0
def test_get_log():
    """
    1. Admin requests logs of user. /SA210/
    2. User requests his own logs /SA220/
    3. Another user(not admin) requests logs of user /SA230/
    :return:
    """
    try:
        user1 = User.get_user_by_username("loguser1")
        jobs = Job.get_jobs([user1.get_username()], [
            JobStatus.PAUSED, JobStatus.QUEUED, JobStatus.ACTIVE,
            JobStatus.DONE
        ])
        for current_job in jobs:
            current_job.set_status(JobStatus.ACTIVE)
    except UserNotFoundException:
        user1 = User("loguser1", "token")

    timestamp = datetime.datetime.now()

    active_job_ids_user1 = []
    job1 = Job('storageA', 'storageB', '~/.data/', [True, True, True], user1)
    job1.set_status(JobStatus.DONE)
    job1.set_start_time(timestamp)
    job1.set_end_time(timestamp)
    job1.set_enqueue_time(timestamp)
    active_job_ids_user1.append(job1.get_job_id())

    job2 = Job('storageA', 'storageB', '~/.data/', [True, True, True], user1)
    job2.set_status(JobStatus.DONE)
    job2.set_start_time(timestamp)
    job2.set_end_time(timestamp)
    job2.set_enqueue_time(timestamp)

    active_job_ids_user1.append(job2.get_job_id())
    job3 = Job('storageA', 'storageB', '~/.data/', [True, True, True], user1)
    job3.set_status(JobStatus.DONE)
    job3.set_start_time(timestamp)
    job3.set_end_time(timestamp)
    job3.set_enqueue_time(timestamp)
    active_job_ids_user1.append(job3.get_job_id())

    # -----------1------------
    try:
        admin = User.get_user_by_username("logadmin1")
    except UserNotFoundException:
        admin = Administrator("logadmin1", "token")

    request = {"days": "5", "user": "******", "for_user": "******"}

    json_string = json.dumps(request)
    response = json.loads(app.get_log(json_string))

    assert len(response) == 3
    for job in response:
        assert job['job_id'] in active_job_ids_user1

    # -----------2------------
    request = {"days": "5", "user": "******", "for_user": "******"}

    json_string = json.dumps(request)
    response = json.loads(app.get_log(json_string))

    assert len(response) == 3
    for job in response:
        assert job['job_id'] in active_job_ids_user1

    # -----------3------------
    try:
        false_admin = User.get_user_by_username("logadminfalse1")
    except UserNotFoundException:
        false_admin = User("logadminfalse1", "token")

    request = {"days": "5", "user": "******", "for_user": "******"}

    json_string = json.dumps(request)
    with pytest.raises(PermissionException):
        app.get_log(json_string)