示例#1
0
def test_average_duration():
    alg = AlgorithmFactory()
    now = timezone.now()

    assert alg.average_duration is None

    j = AlgorithmJobFactory(algorithm_image__algorithm=alg)

    j.started_at = now - timedelta(minutes=5)
    j.completed_at = now
    j.status = j.SUCCESS
    j.save()

    assert alg.average_duration == timedelta(minutes=5)

    # Unsuccessful jobs should not count
    j = AlgorithmJobFactory(algorithm_image__algorithm=alg)
    j.started_at = now - timedelta(minutes=10)
    j.completed_at = now
    j.status = j.FAILURE
    j.save()

    assert alg.average_duration == timedelta(minutes=5)

    # Nor should jobs for other algorithms
    j = AlgorithmJobFactory()
    j.started_at = now - timedelta(minutes=15)
    j.completed_at = now
    j.status = j.SUCCESS
    j.save()

    assert alg.average_duration == timedelta(minutes=5)
示例#2
0
def test_duration():
    j = AlgorithmJobFactory()
    _ = EvaluationFactory()

    jbs = Job.objects.with_duration()
    assert jbs[0].duration is None
    assert Job.objects.average_duration() is None

    now = timezone.now()
    j.started_at = now - timedelta(minutes=5)
    j.completed_at = now
    j.save()

    jbs = Job.objects.with_duration()
    assert jbs[0].duration == timedelta(minutes=5)
    assert Job.objects.average_duration() == timedelta(minutes=5)

    _ = AlgorithmJobFactory()
    assert Job.objects.average_duration() == timedelta(minutes=5)