From a382a3d79bd184314b865b60a6a8fbb4d2d91f90 Mon Sep 17 00:00:00 2001
From: Mario Raciti <mario.raciti@inaf.it>
Date: Thu, 15 Apr 2021 10:44:48 +0200
Subject: [PATCH] TMSS-728: Update JSON structure by moving SUBs outside
 durations

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

diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py
index 43a699ad5c8..0c0684ea018 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py
@@ -12,7 +12,7 @@ def create_project_report(request: Request, project: models.Project) -> {}:
     """
     result = {'project': project.pk}
     result['quota'] = _get_quotas_from_project(request, project.pk)
-    result['durations'] = _get_subs_and_durations_from_project(project.pk)
+    result['SUBs'], result['durations'] = _get_subs_and_durations_from_project(project.pk)
     result['LTA dataproducts'] = _get_lta_dataproducts(project.name)
     result['SAPs'] = _get_saps(project.pk)
 
@@ -29,7 +29,7 @@ def _get_quotas_from_project(request: Request, project_pk: int) -> []:
     return quotas
 
 
-def _get_subs_and_durations_from_project(project_pk: int) -> {}:
+def _get_subs_and_durations_from_project(project_pk: int) -> ({}, {}):
     """
     Help function to retrieve durations and scheduling_units distinguished by success/fail.
     """
@@ -52,9 +52,10 @@ def _get_subs_and_durations_from_project(project_pk: int) -> {}:
 
     total_not_cancelled = total_duration - total_failed_duration  # Calculate not_cancelled duration
     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
+                 'total_not_cancelled': total_not_cancelled.total_seconds(), 'total_failed': total_failed_duration.total_seconds()}
+    subs = {'finished': subs_succeeded, 'failed': subs_failed}
+
+    return subs, durations
 
 
 def _get_lta_dataproducts(project_name: str) -> {}:
diff --git a/SAS/TMSS/backend/test/t_adapter.py b/SAS/TMSS/backend/test/t_adapter.py
index e886bd4dd48..7e6584db476 100755
--- a/SAS/TMSS/backend/test/t_adapter.py
+++ b/SAS/TMSS/backend/test/t_adapter.py
@@ -578,9 +578,9 @@ class ProjectReportTest(unittest.TestCase):
         self.assertAlmostEqual(result['durations']['total_failed'], total_failed)
 
         # There is only one finished SUB
-        self.assertEqual(result['durations']['scheduling_unit_blueprints_finished'][0]['id'], succeeded_sub.pk)
+        self.assertEqual(result['SUBs']['finished'][0]['id'], succeeded_sub.pk)
         # There is only one cancelled SUB
-        self.assertEqual(result['durations']['scheduling_unit_blueprints_failed'][0]['id'], cancelled_sub.pk)
+        self.assertEqual(result['SUBs']['failed'][0]['id'], cancelled_sub.pk)
 
         # There are just two dataproducts
         self.assertEqual(result['LTA dataproducts']['size__sum'], dataproduct1.size + dataproduct2.size)
-- 
GitLab