コード例 #1
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")
コード例 #2
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])
コード例 #3
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)
コード例 #4
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': []})
コード例 #5
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")
コード例 #6
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")
コード例 #7
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)
コード例 #8
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)
コード例 #9
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)
コード例 #10
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)
コード例 #11
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)
コード例 #12
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': []
                      }]})
コード例 #13
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")
コード例 #14
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)
コード例 #15
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)
コード例 #16
0
ファイル: test_middleLayers.py プロジェクト: kunlqt/comp2014
    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)
コード例 #17
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
         }]})
コード例 #18
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']
                 }
             }
         })
コード例 #19
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)
コード例 #20
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)
コード例 #21
0
 def test_getHouseStructure_emptylist(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertEqual(h.getStructure(), {'rooms': []})
コード例 #22
0
 def test_executeMethod_roomDoesNotExist(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.executeMethod, 1, 1, "getState")
コード例 #23
0
 def test_init(self):
     db = MockDatabase()
     h = House(db)
     self.assertEqual({}, h.rooms)
     self.assertEqual(db, h.database)
コード例 #24
0
 def test_deleteRoom_emptyList(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertRaises(KeyError, h.deleteRoom, 1)
コード例 #25
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)
コード例 #26
0
 def test_getVersionEmpty(self):
     tupleDB = ()
     db = MockDatabase(tupleDB)
     h = House(db)
     self.assertEqual(h.getVersion(), {'supportedTypes': {}})
コード例 #27
0
 def test_getState_noRooms(self):
     db = MockDatabase()
     h = House(db)
     h.rooms = {}
     self.assertEqual(h.getState(), {'states': []})