def return_all_devices(): query_get_all_devices = """SELECT * FROM Devices""" sql_data = "" try: requests.get(api_url_lamp_update) return json.dumps( mysql_helper.send_query_to_db(query_get_all_devices, sql_data)) except IOError: return json.dumps({'success': False}), 400, { 'ContentType': 'application/json' }
def return_sensors(): query_get_sensor = """SELECT * FROM Devices WHERE GeraeteNummer = 0 """ sql_data = "" try: return json.dumps( mysql_helper.send_query_to_db(query_get_sensor, sql_data)) except IOError: return json.dumps({'success': False}), 400, { 'ContentType': 'application/json' }
def return_one_devices(): data = request.get_json() query_specific_device = """SELECT * FROM Devices WHERE IP = %s AND GeraeteNummer = %s """ sql_data = (data['IP'], data['GeraeteNummer']) try: return json.dumps( mysql_helper.send_query_to_db(query_specific_device, sql_data)) except IOError: return json.dumps({ 'success': False, 'Errorcode': 'Please enter valid ip' }), 400, { 'ContentType': 'application/json' }
def return_lamps(): data = request.get_json() if request.method == 'GET': query_get_lamp = """SELECT * FROM Devices WHERE GeraeteNummer != 0""" sql_data = "" try: return json.dumps( mysql_helper.send_query_to_db(query_get_lamp, sql_data)) except IOError: return json.dumps({'success': False}), 400, { 'ContentType': 'application/json' } if request.method == 'POST': query_lamp = """UPDATE Devices SET Hue = %s, Saturation = %s, Brightness = %s, Switch = %s WHERE IP = %s AND GeraeteNummer = %s """ sql_data = (data['Hue'], data['Saturation'], data['Brightness'], data['Switch'], data['IP'], data['GeraeteNummer']) try: mysql_helper.send_query_to_db_no_response(query_lamp, sql_data) create_row_data = json.dumps({ 'hue': data['Hue'], 'sat': data['Saturation'], 'on': data['Switch'], 'bri': data['Brightness'], 'num': data['GeraeteNummer'] }) headers = {'content-type': 'application/json'} r = requests.post(api_url, headers=headers, data=create_row_data) return json.dumps({'success': True}), 200, { 'ContentType': 'application/json' } except IOError: return json.dumps({'success': False}), 400, { 'ContentType': 'application/json' }
def test_name(self): self.populate_database() payload = {'IP': '192.168.178.123', 'Name': 'Testcheck', 'GeraeteNummer':'0'} url = "http://127.0.0.1:5003/api/name" headers = {'content-type' : 'application/json'} r = requests.post(url, data=json.dumps(payload), headers = headers) check_data = r.json() self.assertEqual(r.status_code,200) sql="Select * FROM Devices WHERE Name = 'Testcheck'" data = () response = (mysql_helper.send_query_to_db(sql,data)) self.assertEqual(response[0]['Name'],'Testcheck') self.clean_database() pass
def is_lamp_in_db(lamp_number): sql = """SELECT COUNT(*) AS 'num' FROM Devices WHERE GeraeteNummer=%s""" result = mysql_helper.send_query_to_db(sql, (lamp_number, )) return bool(result[0]["num"])
def test_upddate_lamp(self): payload = { 'num': '1', 'hue': '10', 'sat': '10', 'on': '1', 'bri': '10' } url = "http://127.0.0.1:5001/update_lamp" headers = {'content-type': 'application/json'} r = requests.post(url, data=json.dumps(payload), headers=headers) data = r.json self.assertEqual(r.status_code, 200) sql = "Select * FROM Devices" data = ("") response = mysql_helper.send_query_to_db(sql, data) dict = [{ 'DeviceID': 41, 'Name': 'Lamp 1', 'IP': '127.0.0.1', 'GeraeteNummer': 1, 'Heat': None, 'Light': None, 'Hue': 10, 'Saturation': 10, 'Switch': 1, 'Brightness': 10 }, { 'DeviceID': 42, 'Name': 'Lamp 2', 'IP': '127.0.0.1', 'GeraeteNummer': 2, 'Heat': None, 'Light': None, 'Hue': 23536, 'Saturation': 144, 'Switch': 1, 'Brightness': 254 }, { 'DeviceID': 43, 'Name': 'Lamp 3', 'IP': '127.0.0.1', 'GeraeteNummer': 3, 'Heat': None, 'Light': None, 'Hue': 65136, 'Saturation': 254, 'Switch': 1, 'Brightness': 254 }] self.assertEqual(dict[0]['Hue'], 10) self.assertEqual(dict[0]['Saturation'], 10) self.assertEqual(dict[0]['Brightness'], 10) #revert to original state payload = { 'num': '1', 'hue': '4444', 'sat': '254', 'on': '1', 'bri': '254' } url = "http://127.0.0.1:5001/update_lamp" headers = {'content-type': 'application/json'} r = requests.post(url, data=json.dumps(payload), headers=headers) data = r.json self.clean_database() pass
def test_update_lamp_states(self): ''' IMPORTANT: Hue emulator has to e started set Lights in the Emulator and get the states from it and insert it into the Database this test checks if the standards lamps are set and set in the mysql ''' self.clean_database() url = "http://127.0.0.1:5001/update_lamp_states" headers = {'content-type': 'application/json'} r = requests.get(url) self.assertEqual(r.status_code, 200) # check if inserted sql = "Select * FROM Devices" data = ("") response = mysql_helper.send_query_to_db(sql, data) dict = [{ 'DeviceID': 38, 'Name': 'Lamp 1', 'IP': '127.0.0.1', 'GeraeteNummer': 1, 'Heat': None, 'Light': None, 'Hue': 4444, 'Saturation': 254, 'Switch': 1, 'Brightness': 254 }, { 'DeviceID': 39, 'Name': 'Lamp 2', 'IP': '127.0.0.1', 'GeraeteNummer': 2, 'Heat': None, 'Light': None, 'Hue': 23536, 'Saturation': 144, 'Switch': 1, 'Brightness': 254 }, { 'DeviceID': 40, 'Name': 'Lamp 3', 'IP': '127.0.0.1', 'GeraeteNummer': 3, 'Heat': None, 'Light': None, 'Hue': 65136, 'Saturation': 254, 'Switch': 1, 'Brightness': 254 }] self.assertEqual(r.status_code, 200) self.assertEqual(dict[0]['Hue'], response[0]['Hue']) self.assertEqual(dict[0]['Saturation'], response[0]['Saturation']) self.assertEqual(dict[0]['Brightness'], response[0]['Brightness']) self.assertEqual(dict[1]['Hue'], response[1]['Hue']) self.assertEqual(dict[1]['Saturation'], response[1]['Saturation']) self.assertEqual(dict[1]['Brightness'], response[1]['Brightness']) self.assertEqual(dict[2]['Hue'], response[2]['Hue']) self.assertEqual(dict[2]['Saturation'], response[2]['Saturation']) self.assertEqual(dict[2]['Brightness'], response[2]['Brightness']) self.clean_database()