Skip to content

Commit 75a4188

Browse files
committed
(api) Simplify annotation of duration fields
1 parent 5bd5687 commit 75a4188

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

tcms/rpc/api/testcase.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22

33
from django.db.models import F, FloatField
4-
from django.db.models.functions import Cast
4+
from django.db.models.functions import Cast, Coalesce
55
from django.forms import EmailField, ValidationError
66
from django.forms.models import model_to_dict
77
from modernrpc.core import REQUEST_KEY, rpc_method
@@ -290,8 +290,8 @@ def filter(query=None): # pylint: disable=redefined-builtin
290290
# `Cast`ed to their millisecond values
291291
qs = (
292292
TestCase.objects.annotate(
293-
setup_duration_sec=Cast("setup_duration", FloatField()) / 10 ** 6,
294-
testing_duration_sec=Cast("testing_duration", FloatField()) / 10 ** 6,
293+
setup_duration_sec=Coalesce(Cast("setup_duration", FloatField()), 0.0) / 10 ** 6,
294+
testing_duration_sec=Coalesce(Cast("testing_duration", FloatField()), 0.0) / 10 ** 6,
295295
expected_duration_sec=F("setup_duration_sec") + F("testing_duration_sec"),
296296
)
297297
.filter(**query)

tcms/rpc/tests/test_testcase.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@ def test_filter_by_product_id(self):
185185

186186
@parameterized.expand(
187187
[
188-
("both_values_are_not_set", {}, None, None, None),
189-
("setup_duration_is_not_set", {"testing_duration": timedelta(minutes=5)}, None, 300, 300),
190-
("testing_duration_is_not_set", {"setup_duration": timedelta(seconds=45)}, 45, None, 45),
188+
("both_values_are_not_set", {}, 0, 0, 0),
189+
("setup_duration_is_not_set", {"testing_duration": timedelta(minutes=5)}, 0, 300, 300),
190+
("testing_duration_is_not_set", {"setup_duration": timedelta(seconds=45)}, 45, 0, 45),
191191
(
192192
"both_values_are_set",
193193
{"setup_duration": timedelta(seconds=45), "testing_duration": timedelta(minutes=5)}, 45,

0 commit comments

Comments
 (0)