From 3619ce911079450ecfae1a5094bc08410e266c8c Mon Sep 17 00:00:00 2001 From: Michael Hrivnak Date: Thu, 19 Jan 2012 02:59:57 -0500 Subject: [PATCH] re #51 Changed find_available_rooms to return the output of get_filtered(), which is more useful to the UI than just a list of IDs. --- pr_services/resource_system/room_manager.py | 7 ++++--- pr_svc_tests/tests_svc.py | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/pr_services/resource_system/room_manager.py b/pr_services/resource_system/room_manager.py index 7925b6b..fee4488 100644 --- a/pr_services/resource_system/room_manager.py +++ b/pr_services/resource_system/room_manager.py @@ -63,7 +63,7 @@ def _create(self, auth_token, name, venue, capacity): return r @service_method - def get_available_rooms(self, auth_token, start, end, room_ids): + def get_available_rooms(self, auth_token, start, end, room_ids, requested_fields=None): """ Query rooms available (from a selected set of room IDs) during the specified timespan @@ -71,8 +71,9 @@ def get_available_rooms(self, auth_token, start, end, room_ids): @param start Start time as ISO8601 string or datetime @param end End time as ISO8601 string or datetime @param room_ids Required list of room IDs to check - @return a filtered, simple list of available room IDs + @return a result set produced by get_filtered() """ + requested_fields = requested_fields or [] test_room_ids = room_ids or [ ] # convert time arguments from isoformat string to datetime, if not already @@ -106,7 +107,7 @@ def get_available_rooms(self, auth_token, start, end, room_ids): continue auth.check_read_permissions(auth_token, pr_object, ['id']) avail_ids.append(str(pr_object.id)) - return avail_ids + return self.get_filtered(auth_token, {'member' : {'id' : avail_ids}}, requested_fields) # vim:tabstop=4 shiftwidth=4 expandtab diff --git a/pr_svc_tests/tests_svc.py b/pr_svc_tests/tests_svc.py index 64dd800..30e82eb 100644 --- a/pr_svc_tests/tests_svc.py +++ b/pr_svc_tests/tests_svc.py @@ -896,10 +896,11 @@ def test_get_available_rooms(self): self.assertEquals(ret['status'], 'OK') self.assertEquals(len(ret['value']), 3) # make sure the busy rooms are NOT in this list - self.assertTrue(unicode(place_ids['v1_room1_id']) not in ret['value']) - self.assertTrue(unicode(place_ids['v1_room2_id']) in ret['value']) - self.assertTrue(unicode(place_ids['v2_room1_id']) in ret['value']) - self.assertTrue(unicode(place_ids['v2_room2_id']) in ret['value']) + room_ids = [room['id'] for room in ret['value']] + self.assertTrue(place_ids['v1_room1_id'] not in room_ids) + self.assertTrue(place_ids['v1_room2_id'] in room_ids) + self.assertTrue(place_ids['v2_room1_id'] in room_ids) + self.assertTrue(place_ids['v2_room2_id'] in room_ids) # test without the conflicting IDs test_room_ids = [ @@ -945,11 +946,12 @@ def test_get_available_rooms(self): test_room_ids) self.assertEquals(ret['status'], 'OK') self.assertEquals(len(ret['value']), 2) + room_ids = [room['id'] for room in ret['value']] # make sure rooms from blacked-out venue 1 are NOT in this list - self.assertTrue(unicode(place_ids['v1_room1_id']) not in ret['value']) - self.assertTrue(unicode(place_ids['v1_room2_id']) not in ret['value']) - self.assertTrue(unicode(place_ids['v2_room1_id']) in ret['value']) - self.assertTrue(unicode(place_ids['v2_room2_id']) in ret['value']) + self.assertTrue(place_ids['v1_room1_id'] not in room_ids) + self.assertTrue(place_ids['v1_room2_id'] not in room_ids) + self.assertTrue(place_ids['v2_room1_id'] in room_ids) + self.assertTrue(place_ids['v2_room2_id'] in room_ids) class TestVenueManagerSvc(TestCase): def test_get_available_venues(self):