From cc45a8211d9eb85e33d1e986665e8e9eda826bce Mon Sep 17 00:00:00 2001
From: Ruud Beukema <beukema@astron.nl>
Date: Wed, 5 Apr 2017 08:48:57 +0000
Subject: [PATCH] Task #10560: Fixed unittests

---
 .../ResourceAssigner/lib/assignment.py        | 23 ++++++++++---------
 .../test/t_resourceassigner.py                |  3 ++-
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
index 81ed5e2b724..27ba9db691d 100755
--- a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
@@ -659,17 +659,18 @@ class ResourceAssigner():
     def is_claimable_rcu_wise(self, needed_resources, resource_claims_rcus, rcu_resource_type_id):
         is_claimable = True
 
-        for res_type, used_rcus in needed_resources.items():
-            if res_type == rcu_resource_type_id:
-                for claimed_rcus in resource_claims_rcus['used_rcus']:
-                    length_difference = abs(len(claimed_rcus) - len(used_rcus))
-                    if len(claimed_rcus) < len(used_rcus):
-                        claimed_rcus.ljust(length_difference, '0')
-                    elif len(claimed_rcus) > len(used_rcus):
-                        used_rcus.ljust(length_difference, '0')
-
-                    is_claimable &= all(not (int(used_rcus[idx]) & int(character))
-                                        for idx, character in enumerate(claimed_rcus))
+        if resource_claims_rcus:
+            for res_type, used_rcus in needed_resources.items():
+                if res_type == rcu_resource_type_id:
+                    for claimed_rcus in resource_claims_rcus['used_rcus']:
+                        length_difference = abs(len(claimed_rcus) - len(used_rcus))
+                        if len(claimed_rcus) < len(used_rcus):
+                            claimed_rcus.ljust(length_difference, '0')
+                        elif len(claimed_rcus) > len(used_rcus):
+                            used_rcus.ljust(length_difference, '0')
+
+                        is_claimable &= all(not (int(used_rcus[idx]) & int(character))
+                                            for idx, character in enumerate(claimed_rcus))
 
         return is_claimable
 
diff --git a/SAS/ResourceAssignment/ResourceAssigner/test/t_resourceassigner.py b/SAS/ResourceAssignment/ResourceAssigner/test/t_resourceassigner.py
index 41d23f217dd..27ed675d806 100755
--- a/SAS/ResourceAssignment/ResourceAssigner/test/t_resourceassigner.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/test/t_resourceassigner.py
@@ -1931,11 +1931,12 @@ class ResourceAssignerTest(unittest.TestCase):
 
         self.rarpc_mock.insertResourceClaims.assert_any_call(self.task_id, self.specification_claims, 1, 'anonymous', -1)
 
-    def test_do_assignment_inserts_resource_claims_with_rcu_bit_pattern_in_radb(self):
+    def test_do_assignment_inserts_resource_claims_with_used_rcus_should_succeed(self):
         used_rcus = '111100010111100101101010'
 
         self.rarpc_mock.insertRcuSpecifications.return_value = [1]
         self.rarpc_mock.insertResourceClaims.return_value = {'ids': [1]}
+        self.rarpc_mock.getResourceClaims.return_value = []
 
         rcu_claim = {
             'resource_id': 212,
-- 
GitLab