def testIndexes(self): block = self._createTestBlocking() block2 = Factory.newRoomBlocking()() block2.startDate = date(2011, 1, 1) block2.endDate = date(2011, 1, 10) block2.createdByUser = self._avatar3 block2.message = 'Testing 2' self._blockRoom(block2, self._room1) block2.insert() # Test if all indexes work properly self.assertEqual(frozenset(RoomBlockingBase.getAll()), frozenset((block, block2))) self.assertTrue(RoomBlockingBase.getById(0) is None) self.assertEqual(RoomBlockingBase.getById(1), block) self.assertEqual(RoomBlockingBase.getById(2), block2) self.assertTrue(not RoomBlockingBase.getByOwner(self._dummy)) self.assertTrue(not RoomBlockingBase.getByOwner(self._avatar1)) self.assertEqual(frozenset(RoomBlockingBase.getByOwner(self._avatar2)), frozenset((block,))) self.assertEqual(frozenset(RoomBlockingBase.getByOwner(self._avatar3)), frozenset((block2,))) self.assertTrue(not RoomBlockingBase.getByRoom(self._room5)) self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room1)), frozenset((block.getBlockedRoom(self._room1), block2.getBlockedRoom(self._room1)))) self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room2)), frozenset((block.getBlockedRoom(self._room2),))) self.assertTrue(block2.getBlockedRoom(self._room2) is None) self.assertEqual(frozenset(RoomBlockingBase.getByDate(date(2010, 12, 31))), frozenset((block,))) self.assertEqual(frozenset(RoomBlockingBase.getByDate(date(2011, 1, 1))), frozenset((block, block2))) self.assertEqual(frozenset(RoomBlockingBase.getByDate(date(2011, 1, 2))), frozenset((block2,))) self.assertEqual(frozenset(RoomBlockingBase.getByDateSpan(date(2011, 1, 1), date(2011, 1, 2))), frozenset((block, block2))) self.assertEqual(frozenset(RoomBlockingBase.getByDateSpan(date(2011, 1, 2), date(2011, 2, 1))), frozenset((block2,))) self.assertTrue(not RoomBlockingBase.getByDateSpan(date(2011, 2, 1), date(2012, 1, 1))) # Remove a block block.remove() self.assertEqual(len(RoomBlockingBase.getAll()), 1) self.assertTrue(RoomBlockingBase.getById(block.id) is None) self.assertTrue(not RoomBlockingBase.getByOwner(self._avatar2)) self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room1)), frozenset((block2.getBlockedRoom(self._room1),))) self.assertTrue(not RoomBlockingBase.getByRoom(self._room2)) self.assertTrue(not RoomBlockingBase.getByDate(date(2010, 12, 31))) self.assertEqual(frozenset(RoomBlockingBase.getByDate(date(2011, 1, 1))), frozenset((block2,))) self.assertEqual(frozenset(RoomBlockingBase.getByDate(date(2011, 1, 2))), frozenset((block2,))) # Add a blocked room br = self._blockRoom(block2, self._room2) block2.addBlockedRoom(br) # When adding a blocked room, update() may be (and is) required for it to beindexed block2.update() self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room2)), frozenset((block2.getBlockedRoom(self._room2),))) self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room1)), frozenset((block2.getBlockedRoom(self._room1),))) block2.delBlockedRoom(block2.getBlockedRoom(self._room1)) # Deletion has to update indexes immediately as the object will no longer be reachable from its parent block self.assertTrue(not RoomBlockingBase.getByRoom(self._room1)) block2.update() self.assertTrue(not RoomBlockingBase.getByRoom(self._room1))
def _createTestBlocking(self): block = Factory.newRoomBlocking()() block.startDate = date(2010, 12, 31) block.endDate = date(2011, 1, 1) block.createdByUser = self._avatar2 block.addAllowed(self._avatar4) block.message = 'Testing' self._blockRoom(block, self._room1) self._blockRoom(block, self._room2) self._blockRoom(block, self._room3) self._blockRoom(block, self._room4) self._blockRoom(block, self._room6) block.insert() return block
def _createTestBlocking(self): block = Factory.newRoomBlocking()() block.startDate = date(2010, 12, 31) block.endDate = date(2011, 1, 1) block.createdByUser = self._avatar2 block.addAllowed(self._avatar4) block.message = 'Testing' self._blockRoom(block, self._room1) self._blockRoom(block, self._room2) self._blockRoom(block, self._room3) self._blockRoom(block, self._room4) self._blockRoom(block, self._room6) block.insert() return block
def getByRoom(room, active=-1): return Factory.newRoomBlocking().getByRoom(room, active)
def getByOwner(owner): return Factory.newRoomBlocking().getByOwner(owner)
def getById(id): return Factory.newRoomBlocking().getById(id)
def getAll(): return Factory.newRoomBlocking().getAll()
def getTotalCount(): return Factory.newRoomBlocking().getTotalCount()
def getByDateSpan(begin, end): return Factory.newRoomBlocking().getByDateSpan(begin, end)
def testIndexes(self): block = self._createTestBlocking() block2 = Factory.newRoomBlocking()() block2.startDate = date(2011, 1, 1) block2.endDate = date(2011, 1, 10) block2.createdByUser = self._avatar3 block2.message = 'Testing 2' self._blockRoom(block2, self._room1) block2.insert() # Test if all indexes work properly self.assertEqual(frozenset(RoomBlockingBase.getAll()), frozenset((block, block2))) self.assertTrue(RoomBlockingBase.getById(0) is None) self.assertEqual(RoomBlockingBase.getById(1), block) self.assertEqual(RoomBlockingBase.getById(2), block2) self.assertTrue(not RoomBlockingBase.getByOwner(self._dummy)) self.assertTrue(not RoomBlockingBase.getByOwner(self._avatar1)) self.assertEqual(frozenset(RoomBlockingBase.getByOwner(self._avatar2)), frozenset((block, ))) self.assertEqual(frozenset(RoomBlockingBase.getByOwner(self._avatar3)), frozenset((block2, ))) self.assertTrue(not RoomBlockingBase.getByRoom(self._room5)) self.assertEqual( frozenset(RoomBlockingBase.getByRoom(self._room1)), frozenset((block.getBlockedRoom(self._room1), block2.getBlockedRoom(self._room1)))) self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room2)), frozenset((block.getBlockedRoom(self._room2), ))) self.assertTrue(block2.getBlockedRoom(self._room2) is None) self.assertEqual( frozenset(RoomBlockingBase.getByDate(date(2010, 12, 31))), frozenset((block, ))) self.assertEqual( frozenset(RoomBlockingBase.getByDate(date(2011, 1, 1))), frozenset((block, block2))) self.assertEqual( frozenset(RoomBlockingBase.getByDate(date(2011, 1, 2))), frozenset((block2, ))) self.assertEqual( frozenset( RoomBlockingBase.getByDateSpan(date(2011, 1, 1), date(2011, 1, 2))), frozenset((block, block2))) self.assertEqual( frozenset( RoomBlockingBase.getByDateSpan(date(2011, 1, 2), date(2011, 2, 1))), frozenset((block2, ))) self.assertTrue(not RoomBlockingBase.getByDateSpan( date(2011, 2, 1), date(2012, 1, 1))) # Remove a block block.remove() self.assertEqual(len(RoomBlockingBase.getAll()), 1) self.assertTrue(RoomBlockingBase.getById(block.id) is None) self.assertTrue(not RoomBlockingBase.getByOwner(self._avatar2)) self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room1)), frozenset((block2.getBlockedRoom(self._room1), ))) self.assertTrue(not RoomBlockingBase.getByRoom(self._room2)) self.assertTrue(not RoomBlockingBase.getByDate(date(2010, 12, 31))) self.assertEqual( frozenset(RoomBlockingBase.getByDate(date(2011, 1, 1))), frozenset((block2, ))) self.assertEqual( frozenset(RoomBlockingBase.getByDate(date(2011, 1, 2))), frozenset((block2, ))) # Add a blocked room br = self._blockRoom(block2, self._room2) block2.addBlockedRoom(br) # When adding a blocked room, update() may be (and is) required for it to beindexed block2.update() self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room2)), frozenset((block2.getBlockedRoom(self._room2), ))) self.assertEqual(frozenset(RoomBlockingBase.getByRoom(self._room1)), frozenset((block2.getBlockedRoom(self._room1), ))) block2.delBlockedRoom(block2.getBlockedRoom(self._room1)) # Deletion has to update indexes immediately as the object will no longer be reachable from its parent block self.assertTrue(not RoomBlockingBase.getByRoom(self._room1)) block2.update() self.assertTrue(not RoomBlockingBase.getByRoom(self._room1))
def getByRoom(room, active=-1): return Factory.newRoomBlocking().getByRoom(room, active)
def getByOwner(owner): return Factory.newRoomBlocking().getByOwner(owner)
def getById(id): return Factory.newRoomBlocking().getById(id)
def getAll(): return Factory.newRoomBlocking().getAll()
def getTotalCount(): return Factory.newRoomBlocking().getTotalCount()
def getByDate(date): return Factory.newRoomBlocking().getByDate(date)
def getByDateSpan(begin, end): return Factory.newRoomBlocking().getByDateSpan(begin, end)
def getByDate(date): return Factory.newRoomBlocking().getByDate(date)