def set_device_state(device_name): state = None if _does_parameter_have_value('state', ['on', 'ON', 'On', 'True', 'true', 'TRUE']): state = True elif _does_parameter_have_value('state', ['off', 'OFF', 'Off', 'False', 'false', 'FALSE']): state = False elif _get_parameter_value('state',False): abort(400, 'Parameter "state" must be either "on"/"true" or "off"/"false"') override = _get_boolean_value('override') if(override is not None) & (not _does_parameter_have_value('override', ['False', 'FALSE', 'False'])): abort(400, 'Parameter "override" can only be set to "false"') if (state is not None) & (override is not None): abort(400, 'Either set the "override" value or the "state", but not both.') if _is_freezer(device_name): if state is None: print 'Removing freezer override...' brew_logic.remove_freezer_override() else: print 'Setting freezer override to ' + str(state) + '...' brew_logic.set_freezer_override(state) elif _is_heater(device_name): if state is None: print 'Removing heater override...' brew_logic.remove_heater_override() else: print 'Setting heater override to ' + str(state) + '...' brew_logic.set_heater_override(state) else: abort(400, 'Device "' + device_name + '" is unrecognized. Please use "heater" or "freezer"') response.status = 204;
def test_get_device_state(self): brew_logic.set_freezer_override(True) response, content = self._call_GET_with_credentials('http://localhost:8080/chestfreezer/api/device') assert(response.status == 200) data = json.loads(content) assert(data.get('heater').get('state') == 'off') assert(data.get('heater').get('overridden') == 'false') assert(data.get('freezer').get('state') == 'on') assert(data.get('freezer').get('overridden') == 'true') brew_logic.set_freezer_override(False) brew_logic.set_heater_override(True) response, content = self._call_GET_with_credentials('http://localhost:8080/chestfreezer/api/device') assert(response.status == 200) data = json.loads(content) assert(data.get('heater').get('state') == 'on') assert(data.get('heater').get('overridden') == 'true') assert(data.get('freezer').get('state') == 'off') assert(data.get('freezer').get('overridden') == 'true')