Durante a aula de hoje, a tarefa atribuída a mim foi escrever os testes do módulo {comando_alterar_video} e garantir que as alterações ocorreram conforme o esperado. Começou-se a validação tentando rodar os testes a partir do arquivo inicial, e assim notou-se que algumas importações estavam faltando, gerando erros como esse: NameError: name 'db_tabelas_do_sistema' is not defined Para corrigir esse problema, adicinou-se as importações que estavam faltando e corrigiu-se a linha de código que chamava uma função para sinalizar algum erro nos testes. Agora rodando os testes novamente, o programa finalizou conforme o esperado. Analisando o módulo que deveria ser testado, observou-se que o mesmo ainda não havia sido implementado, sendo essa provavelmente a tarefa de outro aluno durante a matéria de hoje. Assim, é importante salientar que não foi possível validar se o módulo estava funcionando conforme o esperado - apenas foram escritos os testes. Para saber o comportamento desejado desse módulo, analisou-se a interface do mesmo, notando-se alguns pontos importantes: 1. A interface receberia uma sessão (que não poderia ser None e que deveria estar aberta) 2. O dicionário de argumentos deveria conter um parâmetro com o campo 'video', este representando o identificador do vídeo sendo alterado 3. O título do vídeo pode ser alterado, mas apenas se o usuário da sessão for administrador ou o próprio dono do vídeo. Com esses cenários em mente, pensou-se nos seguintes cenários de testes: 1. Tentativa de acessar a página com a sessão None. Uma mensagem de erro deve ser exibida. 2. Tentativa de acessar a página com uma sessão fechada. Uma mensagem de erro deve ser exibida. 3. Tentativa de acessar a página sem passar o identificador do vídeo no argumento 'video'. Uma mensagem de erro deve ser exibida. 4. Página de alteração acessada por um administrador num vídeo que não é dele. Aqui, deve ser possível editar o título do vídeo 5. Página de alteração acessada por um usuário não administrador e num vídeo de autoria dele. Também deve ser possível alterar o título do vídeo. 6. Página de alteração acessada por um usuário não administrador e num vídeo que não é de autoria dele. Aqui, um erro deve ser exibido e não deve ser permitida a alteração. Assim, escreveu-se testes para os 6 cenários acima. ------------------------------------------------------------------------------------------- Entretanto, conversando com o professor, percebemos que havia um problema para a validação desses testes uma vez que outro aluno já estava trabalhando nessa atividade. Por isso, conversamos e decidimos alterar a minha tarefa: agora, a nova atividade atribuída a mim seria para consertar um problema da funcionalidade de Busca de Usuários. Hoje, a Busca de Usuários permite apenas busca por nome completo, o que adiciona algumas restrições na busca (como requerer uma quantidade mínima de 6 caracteres, impedindo a busca por José). Por isso, deixei a atividade anterior de lado e foquei na escrita dessa nova funcionalidade. O desenvolvimento dela concentrou-se no obj_usuario. Adicionei um novo parâmetro na função "obj_usuario.valida_nome_de_usuario" para permitir um nome parcial, mas para evitar quebrar funcionalidades anteriores, deixei o parâmetro como opcional de modo que, caso ele não fosse informado, o nome validado fosse o completo (como funcionava até então). Após isso, alterou também o "comando_buscar_usuarios_IMPL" para que o mesmo passasse a buscar nomes parciais. Considerando as novas regras de busca, optou-se por seguir uma abordagem parecida com a busca do nome completo mas removendo algumas restrições (principalmente as que demandavam que alguma sequência de caracteres fosse obedecida, pois agora estamos tratando de nomes parciais que podem começar "do meio" ou não). Assim, essas foram as regras optadas: * O nome pode começar com letra maiúscula ou minúscula. * Não há restrições para como o nome deve terminar * A palavra pode começar com uma apóstrofe * Apóstrofes podem ser seguidas por letras maiúsculas (ou não). * A palavra pode começar com um hífen * Caso a palavra não comece com um hífen, ele deve seguir um ponto ou uma letra maiúscula ou minúscula. Além disso, o limite mínimo do nome também foi reduzido de 6 caracteres para 2. Implementada a função dentro da classe obj_usuario_IMPL, validou-se agora que a busca funcionava conforme o esperado, permitindo a busca de nomes que antes não eram aceitos (como José). Além disso, executou-se o programa e os testes e confirmou-se que nenhuma outra funcionalidade do projeto foi quebrada pela implementação, garantindo um funcionamento conforme o esperado. Portanto, pode-se dizer que os desenvolvimentos feitos durante a aula ocorreram conforme o esperado. Como foi gasto um tempo com a primeira atividade do dia (os testes do comando_alterar_video) que não pode ser completada pois dependia da atividade de outro aluno, optou-se por deixar tal classe de testes ainda na Branch da atividade de hoje, porém começando com o nome "TMP", apenas para que os esforços gastos para desenvolve-la não sejam desconsiderados.