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)
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)