Example #1
0
 def test_getState_noItems(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     room.items = {}
     h.rooms = {1: room, 2: room}
     self.assertEqual(h.getState(), {'states': []})
Example #2
0
 def test_getState_noItems(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     room.items = {}
     h.rooms = {1: room, 2 : room}
     self.assertEqual(h.getState(), {'states' : []})
Example #3
0
 def test_deleteRoom(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     h.deleteRoom(1)
     self.assertRaises(KeyError, lambda: h.rooms[1])
Example #4
0
 def test_executeMethod_itemDoesNotExist(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     room.items = {}
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.executeMethod, 1, 1, "getState")
Example #5
0
 def test_addRoom(self):
     db = MockDatabase()
     h = House(db)
     h.addRoom("lounge")
     self.assertEqual(h.rooms[db.room.i].id, db.room.entries[db.room.i].id)
     self.assertEqual(h.rooms[db.room.i].name,
                      db.room.entries[db.room.i].name)
Example #6
0
 def test_updateRoom(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     h.updateRoom(1, "new name")
     self.assertEqual(h.rooms[1].name, "new name")
Example #7
0
 def test_executeMethod_itemDoesNotExist(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     room.items = {}
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.executeMethod, 1, 1, "getState")
Example #8
0
 def test_deleteRoom(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     h.deleteRoom(1)
     self.assertRaises(KeyError, lambda: h.rooms[1])
Example #9
0
 def test_updateRoom(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     h.updateRoom(1, "new name")
     self.assertEqual(h.rooms[1].name, "new name")
Example #10
0
 def test_executeMethod_methodDoesNotExist(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertRaises(AttributeError, h.executeMethod, 1, 1, "open")
Example #11
0
 def test_getState(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room, 2 : room}
     self.assertEqual(h.getState(), {'states' : [{"id" : 1, "state" : 1}, {"id" : 1, "state" : 1} ]})
Example #12
0
 def test_executeMethod_methodDoesNotExist(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertRaises(AttributeError, h.executeMethod, 1, 1, "open")
Example #13
0
 def test_executeMethod(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertEqual(h.executeMethod(1, 1, "getState"), 1)
Example #14
0
 def test_executeMethod(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertEqual(h.executeMethod(1, 1, "getState"), 1)
Example #15
0
 def test_getRoomByItemId(self):
     db = MockDatabase()
     h = House(db)
     roomId = h.addRoom("lounge")
     id = 0
     itemId = h.addItem(id, "sensor", "mock", "motionSensor", "0.0.0.0")
     room = h.getRoomByItemId(itemId)
     self.assertEqual(room.name, "lounge")
     self.assertEqual(room.id, roomId)
Example #16
0
 def test_updateItem_wrongItemId(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.updateItem, 1, 2, "new name", "new brand", "lightSensor", "new ip")
     self.assertFalse(db.items.updateEntryCalled)
Example #17
0
 def test_getRoomByItemId(self):
     db = MockDatabase()
     h = House(db)
     roomId = h.addRoom("lounge")
     id = 0
     itemId = h.addItem(id, "sensor", "mock", "motionSensor", "0.0.0.0")
     room = h.getRoomByItemId(itemId)
     self.assertEqual(room.name, "lounge")
     self.assertEqual(room.id, roomId)
Example #18
0
 def test_deleteItem_invalidItemId(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.deleteItem, 1, 2)
     self.assertFalse(db.items.deleteEntryCalled)
Example #19
0
 def test_deleteItem_invalidItemId(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.deleteItem, 1, 2)
     self.assertFalse(db.items.deleteEntryCalled)
Example #20
0
 def test_updateItem_wrongItemId(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.updateItem, 1, 2, "new name",
                       "new brand", "lightSensor", "new ip")
     self.assertFalse(db.items.updateEntryCalled)
Example #21
0
 def test_addItem(self):
     db = MockDatabase()
     h = House(db)
     h.addRoom("lounge")
     h.addItem(0, "sensor", "mock", "motionSensor", "0.0.0.0")
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i]._id, db.items.entries[MockItemsTable.i]._id)
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i].name, db.items.entries[MockItemsTable.i].name)
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i]._type, "motionSensor")
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i].brand, db.items.entries[MockItemsTable.i].brand)
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i].ip, db.items.entries[MockItemsTable.i].ip)
Example #22
0
 def test_deleteItem(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     h.deleteItem(1, 1)
     self.assertRaises(KeyError, lambda: h.rooms[1].items[1])
     self.assertTrue(db.items.deleteEntryCalled)
Example #23
0
 def test_deleteItem(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     h.deleteItem(1, 1)
     self.assertRaises(KeyError, lambda: h.rooms[1].items[1])
     self.assertTrue(db.items.deleteEntryCalled)
Example #24
0
 def test_getHouseStructure(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     self.assertEqual(h.getStructure(),
                      {'rooms': [{
                          'id': 1,
                          'name': "lounge",
                          'items': []
                      }]})
Example #25
0
 def test_getItemById(self):
     db = MockDatabase()
     h = House(db)
     h.addRoom("lounge")
     id = 0
     itemId = h.addItem(id, "sensor", "mock", "motionSensor", "0.0.0.0")
     item = h.getItemById(itemId)
     self.assertEqual(item.name, "sensor")
     self.assertEqual(item._type, "motionSensor")
     self.assertEqual(item._id, itemId)
     self.assertEqual(item.ip, "0.0.0.0")
     self.assertEqual(item.brand, "mock")
Example #26
0
 def test_updateItem(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     h.updateItem(1, 1, "new name", "new brand", "lightSensor", "new ip")
     self.assertEqual(room.items[1].name, "new name")
     self.assertEqual(room.items[1].brand, "new brand")
     self.assertEqual(room.items[1]._type, "lightSensor")
     self.assertEqual(room.items[1].ip, "new ip")
     self.assertTrue(db.items.updateEntryCalled)
Example #27
0
 def test_updateItem(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room}
     h.updateItem(1, 1, "new name", "new brand", "lightSensor", "new ip")
     self.assertEqual(room.items[1].name, "new name")
     self.assertEqual(room.items[1].brand, "new brand")
     self.assertEqual(room.items[1]._type, "lightSensor")
     self.assertEqual(room.items[1].ip, "new ip")
     self.assertTrue(db.items.updateEntryCalled)
Example #28
0
    def test_stateChangesTriggered(self):
        db = MockDB()
        house = House(db)
        item = Openable(1, "item1", "mock", "door", "192.168.0.100", house.listenerManager)
        item.stateChanged = MethCallLogger(item.stateChanged)
        room = MockRoom(1, "lounge")
        room.items = {1: item}
        house.rooms = {1: room}

        item.close()

        # Sleep for 3 seconds to give the thread a chance to call checkForStateChange()
        time.sleep(3)

        self.assertTrue(item.stateChanged.was_called)
Example #29
0
 def test_getState(self):
     db = MockDatabase()
     h = House(db)
     item1 = MockItem(1, "mockName", "mockBrand", "motionSensor", "mockIP")
     room = MockRoom(1, "lounge")
     room.items = {1: item1}
     h.rooms = {1: room, 2: room}
     self.assertEqual(
         h.getState(),
         {'states': [{
             "id": 1,
             "state": 1
         }, {
             "id": 1,
             "state": 1
         }]})
Example #30
0
 def test_getVersion(self):
     tupleDB = (('motionSensor', 'getState'), ('light', 'on'),
                ('light', 'off'), ('light', 'getState'))
     db = MockDatabase(tupleDB)
     h = House(db)
     self.assertEqual(
         h.getVersion(), {
             'supportedTypes': {
                 'motionSensor': {
                     'states': [{
                         'id': 1,
                         'name': 'motion detected'
                     }, {
                         'id': 0,
                         'name': 'no motion'
                     }],
                     'supportedBrands': ['mock', 'arduino'],
                     'name':
                     'Motion Sensor',
                     'isPassive':
                     True,
                     'methods': ['getState']
                 },
                 'light': {
                     'states': [{
                         'method': 'on',
                         'id': 1,
                         'name': 'on'
                     }, {
                         'method': 'off',
                         'id': 0,
                         'name': 'off'
                     }],
                     'supportedBrands': ['mock', 'lightwaveRF'],
                     'name':
                     'Light',
                     'isPassive':
                     False,
                     'methods': ['on', 'off', 'getState']
                 }
             }
         })
Example #31
0
 def test_getItemById(self):
     db = MockDatabase()
     h = House(db)
     h.addRoom("lounge")
     id = 0
     itemId = h.addItem(id, "sensor", "mock", "motionSensor", "0.0.0.0")
     item = h.getItemById(itemId)
     self.assertEqual(item.name, "sensor")
     self.assertEqual(item._type, "motionSensor")
     self.assertEqual(item._id, itemId)
     self.assertEqual(item.ip, "0.0.0.0")
     self.assertEqual(item.brand, "mock")
Example #32
0
 def test_addItem(self):
     db = MockDatabase()
     h = House(db)
     h.addRoom("lounge")
     h.addItem(0, "sensor", "mock", "motionSensor", "0.0.0.0")
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i]._id,
                      db.items.entries[MockItemsTable.i]._id)
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i].name,
                      db.items.entries[MockItemsTable.i].name)
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i]._type,
                      "motionSensor")
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i].brand,
                      db.items.entries[MockItemsTable.i].brand)
     self.assertEqual(h.rooms[db.room.i].items[MockItemsTable.i].ip,
                      db.items.entries[MockItemsTable.i].ip)
Example #33
0
 def test_getHouseStructure(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     self.assertEqual(h.getStructure(), {'rooms': [{'id': 1, 'name': "lounge", 'items': []}]})
Example #34
0
 def test_deleteRoom_idNotInDict(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.deleteRoom, 2)
Example #35
0
 def test_deleteRoom_emptyList(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.deleteRoom, 1)
Example #36
0
 def test_getVersionEmpty(self):
     tupleDB = ()
     db = MockDatabase(tupleDB)
     h = House(db)
     self.assertEqual(h.getVersion(), {'supportedTypes': {}})
Example #37
0
 def test_getHouseStructure_emptylist(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertEqual(h.getStructure(), {'rooms': []})
Example #38
0
 def test_getHouseStructure_emptylist(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertEqual(h.getStructure(), {'rooms': []})
Example #39
0
 def test_deleteItem_emptyList(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.deleteItem, 1, 1)
     self.assertFalse(db.items.deleteEntryCalled)
Example #40
0
 def test_initFromDatabase(self):
     db = MockDatabase()
     h = House(db)
     h.initFromDatabase()
     self.assertEqual(h.rooms[1].name, "lounge")
     self.assertEqual(h.rooms[1].id, 1)
Example #41
0
 def test_executeMethod_roomDoesNotExist(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.executeMethod, 1, 1, "getState")
Example #42
0
 def test_executeMethod_roomDoesNotExist(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.executeMethod, 1, 1, "getState")
Example #43
0
 def test_getState_noRooms(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertEqual(h.getState(), {'states' : []})
Example #44
0
 def test_getVersion(self):
     tupleDB = (('motionSensor', 'getState'), ('light', 'on'), ('light', 'off'), ('light', 'getState'))
     db = MockDatabase(tupleDB)
     h = House(db)
     self.assertEqual(h.getVersion(), {'supportedTypes': {'motionSensor': {'states': [{'id': 1, 'name': 'motion detected'}, {'id': 0, 'name': 'no motion'}], 'supportedBrands': ['mock', 'arduino'], 'name': 'Motion Sensor', 'isPassive': True, 'methods': ['getState']}, 'light': {'states': [{'method': 'on', 'id': 1, 'name': 'on'}, {'method': 'off', 'id': 0, 'name': 'off'}], 'supportedBrands': ['mock', 'lightwaveRF'], 'name': 'Light', 'isPassive': False, 'methods': ['on', 'off', 'getState']}}})
Example #45
0
 def test_getVersionEmpty(self):
     tupleDB = ()
     db = MockDatabase(tupleDB)
     h = House(db)
     self.assertEqual(h.getVersion(), {'supportedTypes' : {}})
Example #46
0
 def test_deleteRoom_idNotInDict(self):
     db = MockDatabase()
     h = House(db)
     room = MockRoom(1, "lounge")
     h.rooms = {1: room}
     self.assertRaises(KeyError, h.deleteRoom, 2)
Example #47
0
 def test_initFromDatabase(self):
     db = MockDatabase()
     h = House(db)
     h.initFromDatabase()
     self.assertEqual(h.rooms[1].name, "lounge")
     self.assertEqual(h.rooms[1].id, 1)
Example #48
0
 def test_getState_noRooms(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertEqual(h.getState(), {'states': []})
Example #49
0
 def test_init(self):
     db = MockDatabase()
     h = House(db)
     self.assertEqual({}, h.rooms)
     self.assertEqual(db, h.database)
Example #50
0
 def test_deleteRoom_emptyList(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.deleteRoom, 1)
Example #51
0
 def test_deleteItem_emptyList(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.deleteItem, 1, 1)
     self.assertFalse(db.items.deleteEntryCalled)
Example #52
0
 def test_addRoom(self):
     db = MockDatabase()
     h = House(db)
     h.addRoom("lounge")
     self.assertEqual(h.rooms[db.room.i].id, db.room.entries[db.room.i].id)
     self.assertEqual(h.rooms[db.room.i].name, db.room.entries[db.room.i].name)