From ec37c985063a2890b0abbfa64607621b0330d91d Mon Sep 17 00:00:00 2001
From: Mario Raciti <mario.raciti@inaf.it>
Date: Thu, 8 Apr 2021 11:27:43 +0200
Subject: [PATCH] TMSS-692: Update durations representation accordingly to SI
 units

---
 SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py | 10 +++++-----
 SAS/TMSS/backend/test/t_adapter.py                    |  8 ++++----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py
index f5b5989407e..b8560d4fef2 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py
@@ -23,16 +23,16 @@ def _get_subs_and_durations_from_project(project_pk: int) -> {}:
         # TODO: Use QA workflow flag instead of the finished status? See TMSS-592.
         if sub.status == 'finished':        # Succeeded observations
             total_succeeded_duration += sub.duration
-            subs_succeeded.append({'id': sub.pk, 'name': sub.name, 'duration': sub.duration})
+            subs_succeeded.append({'id': sub.pk, 'name': sub.name, 'duration': sub.duration.total_seconds()})
         elif sub.status == 'cancelled':     # Failed observations
             total_failed_duration += sub.duration
-            subs_failed.append({'id': sub.pk, 'name': sub.name, 'duration': sub.duration})
+            subs_failed.append({'id': sub.pk, 'name': sub.name, 'duration': sub.duration.total_seconds()})
         total_duration += sub.duration      # Total duration without considering the status of the obs.
 
     total_not_cancelled = total_duration - total_failed_duration  # Calculate not_cancelled duration
-    durations = {'total': str(total_duration), 'total_succeeded': str(total_succeeded_duration), 'total_not_cancelled': str(total_not_cancelled),
-                 'total_failed': str(total_failed_duration), 'scheduling_unit_blueprints_finished': subs_succeeded,
-                 'scheduling_unit_blueprints_failed': subs_failed}
+    durations = {'total': total_duration.total_seconds(), 'total_succeeded': total_succeeded_duration.total_seconds(),
+                 'total_not_cancelled': total_not_cancelled.total_seconds(), 'total_failed': total_failed_duration.total_seconds(),
+                 'scheduling_unit_blueprints_finished': subs_succeeded, 'scheduling_unit_blueprints_failed': subs_failed}
     return durations
 
 
diff --git a/SAS/TMSS/backend/test/t_adapter.py b/SAS/TMSS/backend/test/t_adapter.py
index 0e86c2ab2ed..72596f5ceb9 100755
--- a/SAS/TMSS/backend/test/t_adapter.py
+++ b/SAS/TMSS/backend/test/t_adapter.py
@@ -554,13 +554,13 @@ class ProjectReportTest(unittest.TestCase):
         self.assertEqual(result['quota'][0]['id'], self.project_quota.pk)
 
         # Assert durations are well calculated
-        total = str(subtask.duration)
+        total = subtask.duration.total_seconds()
         self.assertEqual(result['durations']['total'], total)
-        total_succeeded = str(subtask.duration)
+        total_succeeded = subtask.duration.total_seconds()
         self.assertEqual(result['durations']['total_succeeded'], total_succeeded)
-        total_not_cancelled = str(subtask.duration)
+        total_not_cancelled = subtask.duration.total_seconds()
         self.assertEqual(result['durations']['total_not_cancelled'], total_not_cancelled)
-        total_failed = str(timedelta(seconds=0))
+        total_failed = timedelta(seconds=0).total_seconds()
         self.assertEqual(result['durations']['total_failed'], total_failed)
 
         # There is only this finished SUB
-- 
GitLab