Build a User Configuration Manager - Build a User Configuration Manager

Tell us what’s happening:

My delete_settings function is the only thing left that’s giving me problems. I’m not sure what to do.

Your code so far

test_settings = {
    "theme": "dark",
    "notifications": "enabled",
    "volume": "high"
}

def add_setting(test_settings, new_pair):
    key = str(new_pair[0]).lower()
    value = str(new_pair[1]).lower()

    if key in test_settings:
        return f"Setting '{key}' already exists! Cannot add a new setting with this name."
    else:
        test_settings.update({key: value})
        return f"Setting '{key}' added with value '{value}' successfully!"

def update_setting(test_settings, new_pair):
    key = str(new_pair[0]).lower()
    value = str(new_pair[1]).lower()

    if key in test_settings: 
        test_settings.update({key: value})
        return f"Setting '{key}' updated to '{value}' successfully!"
    else:
        return f"Setting '{key}' does not exist! Cannot update a non-existing setting."

def delete_setting(test_settings, new_pair):
    key = str(new_pair[0]).lower()

    if key and value in test_settings:
        test_settings.pop(key, value)
        return f"Setting '{key}' deleted successfully!"
    else: 
        return "Setting not found!"    

def view_settings(test_settings):
    if not test_settings:
        return "No settings available."
    
    header = ["Current User Settings:"]
    for key, value in test_settings.items():
        
        header.append(f"{key.capitalize()}: {value.lower()}")
    
    return "\n".join(header) + "\n"

print(view_settings(test_settings))    

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36

Challenge Information:

Build a User Configuration Manager - Build a User Configuration Manager

GitHub Link: https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/blocks/lab-user-configuration-manager/684aaf9ec670c68d20efd0d0.md

Hi @Kwazile,

When I run the tests on your code, I see “Your code raised an error before any tests could run. Please fix it and try again.” Did you check your browser’s console to see what the error is?

Happy coding

add print(delete_setting({'theme': 'light'}, 'theme')) to test your function, it’s from test 19 that is one of the failing ones that is raising an error

Tell us what’s happening:

I managed to stop getting errors but I’m stuck again.

Your code so far

test_settings = {
    "theme": "dark",
    "notifications": "enabled",
    "volume": "high"
}

def add_setting(test_settings, new_pair):
    key = str(new_pair[0]).lower()
    value = str(new_pair[1]).lower()

    if key in test_settings:
        return f"Setting '{key}' already exists! Cannot add a new setting with this name."
    else:
        test_settings.update({key: value})
        return f"Setting '{key}' added with value '{value}' successfully!"

def update_setting(test_settings, new_pair):
    key = str(new_pair[0]).lower()
    value = str(new_pair[1]).lower()

    if key in test_settings: 
        test_settings.update({key: value})
        return f"Setting '{key}' updated to '{value}' successfully!"
    else:
        return f"Setting '{key}' does not exist! Cannot update a non-existing setting."

def delete_setting(test_settings, new_pair):
    key = new_pair[0].lower()
    value = new_pair[1].lower()

    if key and value in test_settings:
        test_settings.pop(key, value)
        return f"Setting '{key}' deleted successfully!"
    else: 
        return "Setting not found!"    

def view_settings(test_settings):
    if not test_settings:
        return "No settings available."
    
    header = ["Current User Settings:"]
    for key, value in test_settings.items():
        
        header.append(f"{key.capitalize()}: {value.lower()}")
    
    return "\n".join(header) + "\n"

print(delete_setting({'theme': 'light'}, 'theme'))
print(view_settings(test_settings))    

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36

Challenge Information:

Build a User Configuration Manager - Build a User Configuration Manager

GitHub Link: freeCodeCamp/curriculum/challenges/english/blocks/lab-user-configuration-manager/684aaf9ec670c68d20efd0d0.md at main · freeCodeCamp/freeCodeCamp · GitHub

I went ahead and combined your posts for you. In the future, just reply to the original thread to add further updates.

try testing with

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

You are treating the parameter new_pair as though it’s a tuple, but you are only passing in a key. There is no need for a value in this function because pop() only requires the key.