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')