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.
1. Você deve definir uma função chamada 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.
1. Você deve definir uma função chamada 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.
1. Você deve definir uma função chamada 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