class TestHLRCache(unittest.TestCase): def setUp(self): self.bc = BaseComponent() self.dbconn = self.bc.dbconn self.cacheconn = self.bc.cacheconn cursor = self.dbconn.cursor() cursor.execute('DELETE FROM `hlr_cache`') cursor.execute('DELETE FROM `hlr`') cursor.executemany('INSERT INTO `hlr` VALUES (%s,%s,%s,%s,%s,%s)', [ ('1', '2', 'DKI Jakarta', '100,101,102,103', '2010-10-22 15:29:52', 'bernard'), ('2', '1', 'Meong1', '110,111,112', '0000-00-00 00:00:00', 'test'), ('3', '1', 'Meong2', '210,211,212', '0000-00-00 00:00:00', 'test'), ('4', '3', 'Guk1', '330,331,332', '0000-00-00 00:00:00', 'test'), ]) cursor.close() self.cacheconn.delete(HLR_CACHEKEY) self.h1 = HLRCacheForLB(self.dbconn, self.cacheconn) self.h2 = HLRCacheForLB(self.dbconn, self.cacheconn) self.h1.addDevice('SERVER1.COM1', 2, 1, False) self.h1.addDevice('SERVER1.COM1', 2, 1, False) self.h1.addDevice('SERVER1.COM3', 2, 1, False) self.h1.addDevice('SERVER1.COM3', 2, 1, False) self.h1.addDevice('SERVER1.COM3', 2, 1, False) self.h1.addDevice('SERVER1.COM4', 2, 1, False) self.h1.addDevice('SERVER1.COM4', 2, 1, False) self.h1.addDevice('SERVER1.COM5', 2, 1, False) self.h1.addDevice('SERVER1.COM6', 1, 2, False) self.h1.addDevice('SERVER1.COM6', 1, 2, False) self.h1.addDevice('SERVER1.COM1', 2, 1, False) self.h1.addDevice('SERVER1.COM7', 1, 2, False) self.h1.addDevice('SERVER1.COM8', 1, 2, False) self.h1.addDevice('SERVER1.COM1', 2, 1, False) self.h1.addDevice('SERVER1.COM8', 1, 2, False) self.h1.addDevice('SERVER1.COM9', 1, 0, False) self.h1.addDevice('SERVER1.COM9', 1, 0, False) self.h1.addDevice('SERVER1.COM9', 1, 0, False) self.h1.addDevice('SERVER1.COM10', 2, 0, False) self.dbconn.commit() # print self.cacheconn.get(HLR_CACHEKEY) #---------------------- def runTest(self): test_function = [x for x in dir(self) if x[:6] == 'srtest'] map(lambda x: getattr(self, x)(), sorted(test_function)) #---------------------- def srtest10(self): self.h2.addDevice('SERVER2.COM99', 1, 2) tmp = self.h2._getHLRCache() self.assertEqual( ['SERVER1.COM6', 'SERVER1.COM7', 'SERVER1.COM8', 'SERVER2.COM99'], sorted(tmp[HLR_DEVICE][2])) self.assertEqual(['SERVER1.COM9',], tmp[HLR_FREE][1]) tmp = [] tmp.append(self.h2.nextDeviceByHLRId(1)) tmp.append(self.h2.nextDeviceSameHLR()) tmp.append(self.h2.nextDeviceByHLRId(1)) tmp.append(self.h2.nextDeviceSameHLR()) self.assertEqual( ['SERVER1.COM1', 'SERVER1.COM3', 'SERVER1.COM4', 'SERVER1.COM5'], sorted(tmp) ) x = self.h2.nextDeviceSameHLR() self.assertTrue(x in tmp) ## tmp = [] tmp.append(self.h2.nextDevice(2, '100')) tmp.append(self.h2.nextDeviceSameHLR()) tmp.append(self.h2.nextDevice(2, '103')) tmp.append(self.h2.nextDeviceSameHLR()) self.assertEqual( ['SERVER1.COM1', 'SERVER1.COM3', 'SERVER1.COM4', 'SERVER1.COM5'], sorted(tmp) ) x = self.h2.nextDevice(2, '102') self.assertTrue(x in tmp) #---------------------- def srtest20(self): self.h2.removeDevice('SERVER1.COM4', 2, 1) tmp = self.h2._getHLRCache() self.assertEqual( ['SERVER1.COM1', 'SERVER1.COM3', 'SERVER1.COM5'], sorted(tmp[HLR_DEVICE][1])) #---------------------- def srtest30_free_device(self): tmp = self.h2.nextFreeDevice(2) self.assertEqual(tmp, 'SERVER1.COM10') tmp = self.h2.nextFreeDevice(2) self.assertEqual(tmp, 'SERVER1.COM10') tmp = self.h2.nextDeviceSameHLR() self.assertEqual(tmp, 'SERVER1.COM10')