Beispiel #1
0
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'
        }
Beispiel #2
0
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'
        }
Beispiel #3
0
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'
        }
Beispiel #4
0
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'
            }
Beispiel #5
0
    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
Beispiel #6
0
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"])
Beispiel #7
0
    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
Beispiel #8
0
    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()