def testSavedDeviceWillBeAvailableOnAnotherDAOInstance(self): device = {'ip':'127.0.0.1'} self._device_dao.add('500', device) another_dao = DeviceDAO (self._db) devices = another_dao.get_devices('500') self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0])
def testSavedDeviceWontBeAvailableOnAnotherADAOUsingADifferentDB(self): device = {'ip':'127.0.0.1'} server = couchdb.Server() self._device_dao.add('500', device) another_dao = DeviceDAO (self._another_db) devices = another_dao.get_devices('500') self.assertEqual(0, len(devices))
class ServerI(Database.DeviceRegisterServer): def __init__(self, *args, **kwargs): Database.DeviceRegisterServer.__init__(self, *args, **kwargs) self.__person_dao = PersonDAO() self.__device_dao = DeviceDAO() def register(self, ip, room, current=None): print('register: database device ip[{0}] on room[{1}]'.format(ip, room)) self.__device_dao.add(str(room), {'ip':ip}) return utils.get_allowed_persons_on_room(self.__person_dao.load_all(), room)
class CacheCoeherenceManager(object): def __init__(self): self.__device_dao = DeviceDAO() self.__person_dao = PersonDAO() self.__ice_communicator = Ice.initialize() def update (self, room): persons = utils.get_allowed_persons_on_room(self.__person_dao.load_all(), room) for device in self.__device_dao.get_devices(room): if self.__update_device_cache(device, persons): print("CacheCoeherenceManager: update: device[{0}] update with success".format(device)) else: print("CacheCoeherenceManager: update: unable to connect on device[{0}], removing it from db".format(device)) self.__device_dao.remove(room, device) def __update_device_cache(self, device, persons): try: ip = device['ip'] print('CacheCoeherenceManager: update_device_cache: updating device[{ip}]'.format(ip = ip)) proxy_name = "{name}:default -h {ip} -p {port}".format(name = ice_cfg.CACHE_COEHERENCE_SERVER_NAME, ip = ip, port = ice_cfg.CACHE_COEHERENCE_SERVER_PORT) print('CacheCoeherenceManager: update_device_cache: connecting at [{0}]'.format(proxy_name)) base = self.__ice_communicator.stringToProxy(proxy_name) print('CacheCoeherenceManager: update_device_cache: obtained proxy base object') cache_server = Database.CacheCoeherenceServerPrx.checkedCast(base) print('CacheCoeherenceManager: update_device_cache: obtained CacheCoeherenceServer proxy object') if not cache_server: raise RuntimeError("Invalid proxy") cache_server.update(persons) except: traceback.print_exc() return False return True
def setUp (self): server = couchdb.Server() try: server.delete('test') server.delete('other-test') except: pass self._db = server.create('test') self._another_db = server.create('other-test') self._device_dao = DeviceDAO (self._db)
class DeviceDAOTest(unittest.TestCase): def setUp (self): server = couchdb.Server() try: server.delete('test') server.delete('other-test') except: pass self._db = server.create('test') self._another_db = server.create('other-test') self._device_dao = DeviceDAO (self._db) def tearDown (self): server = couchdb.Server() server.delete('test') server.delete('other-test') def testRoomCanBeANumber(self): device = {'ip':'127.0.0.1'} self._device_dao.add(500, device) devices = self._device_dao.get_devices(500) self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0]) self._device_dao.remove(500, device) devices = self._device_dao.get_devices(500) self.assertEqual(0, len(devices)) def testAfterAddingADeviceItWillBeThere(self): device = {'ip':'127.0.0.1'} self._device_dao.add('500', device) devices = self._device_dao.get_devices('500') self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0]) def testAfterRemovingADeviceItWontBeThere(self): device = {'ip':'127.0.0.1'} self._device_dao.add('500', device) devices = self._device_dao.get_devices('500') self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0]) self._device_dao.remove('500', device) devices = self._device_dao.get_devices('500') self.assertEqual(0, len(devices)) def testRemovingADeviceFromARoomThatHasNoDeviceDoesNothing(self): self._device_dao.remove('500', {'whatever':'device'}) devices = self._device_dao.get_devices('500') self.assertEqual(0, len(devices)) def testIfADeviceIsAddedOnMultipleRoomsOnlyTheLastAddWillCount(self): device = {'ip':'127.0.0.1'} self._device_dao.add('35948789', device) self._device_dao.add('500', device) self._device_dao.add('777', device) self.assertEqual([], self._device_dao.get_devices('500')) self.assertEqual([], self._device_dao.get_devices('35948789')) devices = self._device_dao.get_devices('777') self.assertEqual(1, len(devices)) self.assertTrue(device in devices) def testRemovingADeviceThatIsNotOnTheDBDoesNothing(self): device = {'ip':'127.0.0.1'} another_device = {'abacate': 'hahaha'} self._device_dao.add('500', device) self._device_dao.remove('500', another_device) devices = self._device_dao.get_devices('500') self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0]) def testARoomCanHaveNoDeviceRegistered(self): self.assertEqual([], self._device_dao.get_devices('500')) def testIfTheSameDeviceIsAddedMultipleTimesItWillBeLikeItHasBeenAddedOnlyOnce(self): device = {'ip':'127.0.0.1'} self._device_dao.add('500', device) self._device_dao.add('500', device) self._device_dao.add('500', device) self._device_dao.add('500', device) devices = self._device_dao.get_devices('500') self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0]) def testAllDevicesCanBeRetrievedFromARoom(self): device = {'ip':'127.0.0.1'} device2 = {'ip':'192.168.160.181'} self._device_dao.add('500', device) self._device_dao.add('500', device2) devices = self._device_dao.get_devices('500') self.assertEqual(2, len(devices)) self.assertTrue(device in devices) self.assertTrue(device2 in devices) def testDeviceCanBeADictWithAnyData(self): device = {'ip':'127.0.0.1', 'metadata' : 'hahaha', 'abacate': 5 } self._device_dao.add('500', device) devices = self._device_dao.get_devices('500') self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0]) def testSavedDeviceWillBeAvailableOnAnotherDAOInstance(self): device = {'ip':'127.0.0.1'} self._device_dao.add('500', device) another_dao = DeviceDAO (self._db) devices = another_dao.get_devices('500') self.assertEqual(1, len(devices)) self.assertEqual(device, devices[0]) def testSavedDeviceWontBeAvailableOnAnotherADAOUsingADifferentDB(self): device = {'ip':'127.0.0.1'} server = couchdb.Server() self._device_dao.add('500', device) another_dao = DeviceDAO (self._another_db) devices = another_dao.get_devices('500') self.assertEqual(0, len(devices))
def __init__(self, *args, **kwargs): Database.DeviceRegisterServer.__init__(self, *args, **kwargs) self.__person_dao = PersonDAO() self.__device_dao = DeviceDAO()
def __init__(self): self.__device_dao = DeviceDAO() self.__person_dao = PersonDAO() self.__ice_communicator = Ice.initialize()