Instruções
Construir um Gerenciador de Configuração de Usuário
Neste laboratório, você construirá um Gerenciador de Configuração de Usuário que permite aos usuários gerenciar suas configurações, como tema, idioma e notificações. Você implementará funções para adicionar, atualizar, excluir e visualizar as configurações do usuário.
Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório.
Histórias de Usuário:
1. Você deve definir uma função chamada
add_setting com dois parâmetros que representam um dicionário de configurações e uma tupla contendo um par chave-valor
1. A função add_setting deve:
- Converta a chave e o valor para letras minúsculas.
- Se a configuração da chave existir, retorne
Setting '[key]' already exists! Cannot add a new setting with this name. - Se a configuração da chave não existir, adicione o par chave-valor ao dicionário de configurações fornecido e retorne
Setting '[key]' added with value '[value]' successfully!. - As mensagens retornadas devem ter a chave e o valor em letras minúsculas.
update_setting com dois parâmetros que representam um dicionário de configurações e uma tupla contendo um par chave-valor.
1. A função update_setting deve:
- Converta a chave e o valor para letras minúsculas.
- Se a configuração da chave existir, atualize seu valor no dicionário de configurações fornecido e retorne:
Setting '[key]' updated to '[value]' successfully! - Se a configuração da chave não existir, retorne
Setting '[key]' does not exist! Cannot update a non-existing setting. - As mensagens retornadas devem ter a chave e o valor em letras minúsculas.
delete_setting com dois parâmetros que representam um dicionário de configurações e uma chave.
1. A função delete_setting deve:
- Converta a chave passada para letras minúsculas.
- Se a configuração da chave existir, remova o par chave-valor do dicionário de configurações fornecido e retorne
Setting '[key]' deleted successfully! - Se a configuração da chave não existir, retorne
Setting not found! - As mensagens retornadas devem ter a chave em letras minúsculas.
view_settings com um parâmetro que representa um dicionário de configurações.
1. A função view_settings deve:
- Retorne
No settings available.se o dicionário de configurações fornecido estiver vazio. - Se o dicionário contiver alguma configuração, retorne uma string exibindo as configurações. A string deve começar com
Current User Settings:seguida dos pares chave-valor, cada um em uma nova linha e com a chave capitalizada. Por exemplo,view_settings({'theme': 'dark', 'notifications': 'enabled', 'volume': 'high'})deve retornar:
Current User Settings:
Theme: dark
Notifications: enabled
Volume: high
1. Para testar o código, você deve criar um dicionário chamado test_settings para armazenar algumas preferências de configuração do usuário.
O que fazer:
Testes:
- Você deve criar um dicionário chamado `test_settings` e adicionar alguns valores a ele.
- Você deve definir uma função chamada `add_setting`.
- A função `add_setting` deve ter dois parâmetros.
- `add_setting` deve converter a chave para letras minúsculas.
- `add_setting` deve converter o valor para letras minúsculas.
- `add_setting({'theme': 'light'}, ('THEME', 'dark'))` deve retornar a mensagem de erro `Setting 'theme' already exists! Cannot add a new setting with this name.`.
- `add_setting({'theme': 'light'}, ('volume', 'high'))` deve adicionar um novo par chave-valor e retornar a mensagem de sucesso `Setting 'volume' added with value 'high' successfully!`.
- `add_setting` deve adicionar corretamente o par chave-valor fornecido ao dicionário.
- Você deve definir uma função chamada `update_setting`.
- A função `update_setting` deve ter dois parâmetros.
- A função `update_setting` deve converter a chave para letras minúsculas.
- A função `update_setting` deve converter o valor para letras minúsculas.
- `update_setting({'theme': 'light'}, ('theme', 'dark'))` deve atualizar uma chave existente e retornar a mensagem de sucesso `Configuração 'theme' atualizada para 'dark' com sucesso!`.
- `update_setting({'theme': 'light'}, ('volume', 'high'))` deve retornar a mensagem de erro `Configuração 'volume' não existe!` Não é possível atualizar uma configuração inexistente.` quando a chave não existe.
- `update_setting` deve atualizar corretamente o par chave-valor fornecido no dicionário.
- Você deve definir uma função chamada `delete_setting`.
- A função `delete_setting` deve ter dois parâmetros.
- `delete_setting` deve converter a chave para letras minúsculas.
- `delete_setting({'theme': 'light'}, 'theme')` deve remover a chave existente e retornar a mensagem de sucesso `Configuração 'theme' excluída com sucesso!`.
- `delete_setting` deve retornar a mensagem de erro `Configuração não encontrada!` quando a chave não existir.
- `delete_setting` deve remover corretamente a chave fornecida do dicionário.
- Você deve definir uma função chamada `view_settings`.
- A função `view_settings` deve ter um parâmetro.
- `view_settings` deve retornar a mensagem `Nenhuma configuração disponível.` se o dicionário fornecido estiver vazio.
- `view_settings` deve retornar configurações formatadas para dicionário não vazio.
- `view_settings` deve capitalizar a primeira letra de cada nome de configuração.
- `view_settings` deve exibir os resultados corretos e terminar com um caractere de nova linha.
Preview