From 0d74e67a29d37646329a85cc43d28b8620726a04 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Thu, 17 Aug 2017 08:20:26 +0000
Subject: [PATCH] Task #11160: added test check which shows the bug that a
 claim goes erroneously to conflict even when there is ample space available

---
 .../ResourceAssignmentDatabase/tests/t_radb.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py
index 40768a06e5a..da1d1a3e928 100755
--- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py
@@ -1367,6 +1367,24 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
             self.assertEqual(0, len(self.radb.get_overlapping_claims(claim['id'], 'tentative')))
             self.assertEqual(0, len(self.radb.get_overlapping_tasks(claim['id'], 'tentative')))
 
+        #add an extra claim, overlapping with only the last claim of size 40. So it should fit (100-40=60 and 60>30).
+        extra_claim = { 'resource_id': 117,
+                        'starttime': now+timedelta(hours=0.8),
+                        'endtime': now+timedelta(hours=0.9),
+                        'status': 'tentative',
+                        'claim_size': 30 }
+        extra_claim_ids = self.radb.insertResourceClaims(task_id, [extra_claim], 'foo', 1, 1)
+        self.assertEqual(1, len(extra_claim_ids))
+
+        #check the extra_claim's status, should be tentative.
+        for claim in self.radb.getResourceClaims(claim_ids=extra_claim_ids):
+            self.assertEqual('tentative', claim['status'])
+
+        # update the extra_claim status to 'claimed'. Should succeed.
+        self.assertTrue(self.radb.updateResourceClaims(extra_claim_ids, status='claimed'))
+        for claim in self.radb.getResourceClaims(claim_ids=extra_claim_ids):
+            self.assertEqual('claimed', claim['status'])
+
 
 if __name__ == "__main__":
     os.environ['TZ'] = 'UTC'
-- 
GitLab