From aba20b792fc762e32b97b7b0f40b5c2ebf59d997 Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Wed, 19 Apr 2017 09:09:58 +0000
Subject: [PATCH] Task #10698: Test explicitly if only observations and
 pipelines are handled by checkUnRunTasksForMoMOpenedStatus, and whether tasks
 not in MoMDB are actually deleted.

---
 .../ResourceAssigner/test/t_schedulechecker.py  | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulechecker.py b/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulechecker.py
index adbdbc3373d..4d6cf4dc37a 100755
--- a/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulechecker.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulechecker.py
@@ -137,6 +137,23 @@ class ScheduleCheckerTest(unittest.TestCase):
             self.assertFalse(self.curpc_mock.removeTaskData.called, "Task output was deleted from disk")
             self.assertFalse(self.rarpc_mock.deleteSpecification.called, "Object was removed from RADB")
 
+    def test_checkUnRunTasksForMoMOpenedStatus_mom_notexisting_otdb_approved(self):
+        """ Test if a task is not in MoM, and 'approved' in OTDB. This causes the task to be deleted. """
+        self.momrpc_mock.getProjectDetails.return_value = {}
+
+        with TestingScheduleChecker(self.rarpc_mock, self.momrpc_mock, self.curpc_mock) as schedulechecker:
+            schedulechecker.checkUnRunTasksForMoMOpenedStatus()
+
+            self.assertTrue(self.rarpc_mock.deleteSpecification.called, "Object was not removed from RADB")
+
+    def test_checkUnRunTasksForMoMOpenedStatus_only_observations_pipelines(self):
+        """ Test if only observations and pipelines are compared against the MoMDB (and not maintenance or reservation tasks, for example). """
+
+        with TestingScheduleChecker(self.rarpc_mock, self.momrpc_mock, self.curpc_mock) as schedulechecker:
+            schedulechecker.checkUnRunTasksForMoMOpenedStatus()
+
+            self.assertEquals(self.rarpc_mock.getTasks.call_args[1]["task_type"], ['observation', 'pipeline'], "Only observations and pipelines must be matched against MoMDB")
+
 if __name__ == '__main__':
     unittest.main()
 
-- 
GitLab