Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit bf2de21

Browse files
committed
first pass, intialize the method for failure rate:
1 parent bd7909a commit bf2de21

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

api/public/v2/test_results/serializers.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,23 @@ class TestInstanceSerializer(serializers.ModelSerializer):
1313
outcome = serializers.CharField(label="outcome")
1414
branch = serializers.CharField(label="branch name")
1515
repoid = serializers.IntegerField(label="repo id")
16-
failure_rate = serializers.FloatField(
17-
source="test.failure_rate", read_only=True, label="failure rate"
18-
)
16+
failure_rate = serializers.SerializerMethodField(label="failure rate")
1917
commits_where_fail = serializers.ListField(
2018
source="test.commits_where_fail",
2119
read_only=True,
2220
label="commits where test failed",
2321
)
2422

23+
def get_failure_rate(self, obj):
24+
test_instances = TestInstance.objects.filter(test=obj.test)
25+
total_runs = test_instances.count()
26+
if total_runs == 0:
27+
return 0.0
28+
29+
fail_count = test_instances.filter(outcome=TestInstance.Outcome.FAILURE.value).count()
30+
31+
return fail_count / total_runs
32+
2533
class Meta:
2634
model = TestInstance
2735
read_only_fields = (

0 commit comments

Comments
 (0)