Build a User Configuration Manager - Build a User Configuration Manager

Tell us what’s happening:

My tests are coming back correct except for the last three (25, 26 and 27) and I’m not sure why. Also, even the ones that say they’re correct aren’t returning the strings on the terminal.

Your code so far

test_settings = {
    'theme': 'light',
    'language': 'english',
    'notifications': '1'
}
settings = test_settings

def add_setting(settings, new_setting):
    key, value = new_setting
    key = key.lower()
    value = value.lower()
    if key in settings:
        return f"Setting '{key}' already exists! Cannot add a new setting with this name."
        return False  
    else:
        settings[key] = value
        return f"Setting '{key}' added with value '{value}' successfully!"
        return True

add_setting({'theme': 'light'}, ('THEME', 'dark'))
add_setting({'theme': 'light'}, ('volume', 'high'))
#add_setting(settings, ('color', 'red'))



def update_setting(dictionary, key_value):
    #dictionary[key_update] = value_update
    key_update, value_update = key_value
    key_update = key_update.lower()
    value_update = value_update.lower()

    if key_update in dictionary:
        dictionary[key_update] = value_update
        return f"Setting '{key_update}' updated to '{value_update}' successfully!"
        return True
    else:
        return f"Setting '{key_update}' does not exist! Cannot update a non-existing setting."
        return False


def delete_setting(settings, key):
    key = key.lower()

    if key not in settings:
        return 'Setting not found!'
    else:
        del settings[key]
        return f"Setting '{key}' deleted successfully!"

#delete_setting({'theme': 'light'}, 'THEME')

print(settings)


def view_settings(dictionary):
    if not (dictionary):
        return 'No settings available.'
    else:
        result = f'Current User Settings:\n',
        for key, value in dictionary.items():
            return f'{result} {key.capitalize()}: {value.lower()}\n'

update_setting({'theme': 'light'}, ('theme', 'dark'))
update_setting({'theme': 'light'}, ('volume', 'high'))
#view_settings()
#add_setting({'pants', 'dark'}, ('THEME', 'light'))
#print(settings)
#update_setting('theme', 'screen') 
#print(f'{settings}')

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:146.0) Gecko/20100101 Firefox/146.0

Challenge Information:

Build a User Configuration Manager - Build a User Configuration Manager

Hmm, you can only return once

And here.

I don’t think you quite understand what return does. After a function encounters a return statement, it immediately stops

Am I not supposed to see the strings on the screen? Or do I not need to return the function as true or false?

Don’t confuse return and print

Read more here https://www.geeksforgeeks.org/python/difference-between-return-and-print-in-python/

You do need to ‘return’ what the instead ask for but you cannot have a single function call return multiple times. That’s not how the return keyword works.