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")
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])
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")
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' : []})
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': []})
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")
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} ]})
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)
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)
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)
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)
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': [] }]})
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)
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)
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 }]})
def test_deleteItem_emptyList(self): db = MockDatabase() h = House(db) h.rooms = {} self.assertRaises(KeyError, h.deleteItem, 1, 1) self.assertFalse(db.items.deleteEntryCalled)
def test_executeMethod_roomDoesNotExist(self): db = MockDatabase() h = House(db) h.rooms = {} self.assertRaises(KeyError, h.executeMethod, 1, 1, "getState")
def test_getState_noRooms(self): db = MockDatabase() h = House(db) h.rooms = {} self.assertEqual(h.getState(), {'states' : []})
def test_deleteRoom_emptyList(self): db = MockDatabase() h = House(db) h.rooms = {} self.assertRaises(KeyError, h.deleteRoom, 1)
def test_deleteRoom_idNotInDict(self): db = MockDatabase() h = House(db) room = MockRoom(1, "lounge") h.rooms = {1: room} self.assertRaises(KeyError, h.deleteRoom, 2)
def test_getState_noRooms(self): db = MockDatabase() h = House(db) h.rooms = {} self.assertEqual(h.getState(), {'states': []})
def test_getHouseStructure_emptylist(self): db = MockDatabase() h = House(db) h.rooms = {} self.assertEqual(h.getStructure(), {'rooms': []})
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': []}]})