Ejemplo n.º 1
0
 def __init__(self):
     self.__exibirIntroducao()
     self.__scrumPy = ScrumPy()
     self.__acelerarInput()
     
     while True:
         self.__exibirMenu()
         opcao = raw_input()
         
         if opcao == "oua":
             self.__obterUsuarioAtual()
         elif opcao == "opa":
             self.__obterProjetoAtual()
         elif opcao == "cu":
             self.__criarUsuario()
         elif opcao == "lu":
             self.__logarUsuario()
         elif opcao == "ou":
             self.__obterUsuarios()
         elif opcao == "cp":
             self.__criarProjeto()
         elif opcao == "opp":
             self.__obterProjetosParticipados()
         elif opcao == "ap":
             self.__abrirProjeto()
         elif opcao == "oe":
             self.__obterEstorias()
         elif opcao == "csb":
             self.__criarSprintBackLog()
         elif opcao == "ot":
             self.__obterTarefas()
         elif opcao == "ce":
             self.__criarEstoria()
         elif opcao == "ct":
             self.__criarTarefa()
         elif opcao == "mtc":
             self.__marcarTarefaConcluida()
         else:
             print "Opção inválida"
Ejemplo n.º 2
0
class InterfaceTexto(object):
    def __init__(self):
        self.__exibirIntroducao()
        self.__scrumPy = ScrumPy()
        self.__acelerarInput()
        
        while True:
            self.__exibirMenu()
            opcao = raw_input()
            
            if opcao == "oua":
                self.__obterUsuarioAtual()
            elif opcao == "opa":
                self.__obterProjetoAtual()
            elif opcao == "cu":
                self.__criarUsuario()
            elif opcao == "lu":
                self.__logarUsuario()
            elif opcao == "ou":
                self.__obterUsuarios()
            elif opcao == "cp":
                self.__criarProjeto()
            elif opcao == "opp":
                self.__obterProjetosParticipados()
            elif opcao == "ap":
                self.__abrirProjeto()
            elif opcao == "oe":
                self.__obterEstorias()
            elif opcao == "csb":
                self.__criarSprintBackLog()
            elif opcao == "ot":
                self.__obterTarefas()
            elif opcao == "ce":
                self.__criarEstoria()
            elif opcao == "ct":
                self.__criarTarefa()
            elif opcao == "mtc":
                self.__marcarTarefaConcluida()
            else:
                print "Opção inválida"

    def __marcarTarefaConcluida(self):
        try:
            self.__scrumPy.obterTarefas()
            idTarefa = raw_input("Forneça o IdTarefa: ")
            self.__scrumPy.marcarTarefaConcluida(idTarefa)
        except (TarefaNaoExiste):
            print "Não há tarefa pendente com o ID fornecido."
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."
        except (UsuarioSemPermissao):
            print "Usuário não tem permissão para a opção escolhida."
        except (UsuarioNaoLogado):
            print "Usuário não está logado."


    def __criarEstoria(self):
        nome = raw_input("Forneça o nome: ")
        descricao = raw_input("Forneça a descrição: ")
        criarTarefa = "s"
        while criarTarefa == "s":
            criarTarefa = raw_input("Deseja criar uma tarefa? S/[N] ").lower()
            if criarTarefa == "s":
                self.__criarTarefa()
        
        print "Forneça um idTarefa por linha. Uma linha em branco encerra a lista"
        tarefas = []
        id = None
        while id != "":
            id = raw_input()
            if id != "":
                tarefas += [id]
        
        try:
            self.__scrumPy.criarEstoria(nome, descricao, tarefas)
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."
        except (UsuarioSemPermissao):
            print "Usuário não tem permissão para a opção escolhida."
        except (UsuarioNaoLogado):
            print "Usuário não está logado."
        except (TarefaNaoExiste):
            print "Uma tarefa fornecida não existe."
        except (TarefaJaConcluida):
            print "Uma tarefa fornecida já foi concluída"


    def __obterTarefas(self):
        try:
            self.__exibirTarefas(self.__scrumPy.obterTarefas())
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."

    def __criarSprintBackLog(self):
        duracao = raw_input("Forneça a duração: ")
        print "Forneça uma id de estória por linha. Uma linha em branco encerra a lista"
        estoriasEscolhidas = []
        estoria = None
        while estoria != "":
            estoria = raw_input()
            if estoria != "":
                estoriasEscolhidas += [estoria]
        
        mapaTarefasMembros = {}
        try:
            for estoria in estoriasEscolhidas:
                tarefas = self.__scrumPy.obterTarefasDeEstoria(estoria)
                print "Forneça o usuário responsável por cada tarefa de {0}: ".format(estoria)
                for tarefa in tarefas:
                    membro = raw_input(tarefa + ": ")
                    mapaTarefasMembros[tarefa] = membro
            
            self.__scrumPy.criarSprintBackLog(duracao, estoriasEscolhidas, mapaTarefasMembros)
            print "Sprint BackLog criado com sucesso."
        except (TarefaNaoExiste):
            print "Alguma tarefa fornecida não existe"
        except (UsuarioNaoExiste):
            print "Algum usuário fornecido não existe"
        except (EstoriaNaoExiste):
            print "Alguma estória fornecida não existe"
        except (DuracaoInvalida):
            print "Duração fornecida <= 0"
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."
        except (UsuarioSemPermissao):
            print "Usuário não tem permissão para a opção escolhida."
        except (UsuarioNaoLogado):
            print "Usuário não está logado."

    def __obterEstorias(self):
        try:
            print "Estória - Tarefas"
            for estoria, tarefas in self.__scrumPy.obterEstorias():
                print "{0} - {1}".format(estoria, tarefas)        
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."
            
    def __abrirProjeto(self):
        idProj = raw_input("Forneça o Id do projeto: ")
        try:
            aberto = self.__scrumPy.abrirProjeto(idProj)
            print "Projeto Aberto. Nome: {0}; ID: {1}".format(aberto[0], aberto[1])
        except (ProjetoNaoExiste):
            print "Projeto não existe."
        except (NaoParticipaDoProjeto):
            print "Usuário não participa do projeto escolhido."
        except (UsuarioNaoLogado):
            print "Usuário não está logado."


    def __obterProjetosParticipados(self):
        try:
            print self.__scrumPy.obterProjetosParticipados()
        except (UsuarioNaoLogado):
            print "Usuário não está logado."


    def __criarProjeto(self):
        nome = raw_input("Forneça o nome do projeto: ")
        print "Usuários disponíveis: "
        self.__obterUsuarios()
        print "Forneça um login do time por linha. Uma linha em branco encerra a lista"
        time = []
        login = None
        while login != "":
            login = raw_input()
            if login != "":
                time += [login]
        
        prodOwner = raw_input("Forneça o Product Owner: ")
        scrumMaster = raw_input("Forneça o Scrum Master: ")
        try:
            id = self.__scrumPy.criarProjeto(nome, time, prodOwner, scrumMaster)
            print "Foi criado um novo projeto com a ID:", id
        except (UsuarioNaoExiste):
            print "Algum usuário enviado não existe"
        except (UsuarioNaoLogado):
            print "Usuário não está logado."
        except (UsuarioSemPermissao):
            print "Usuário não tem permissão para a opção escolhida."

    def __obterUsuarios(self):
        try:
            print self.__scrumPy.obterUsuarios()
        except (UsuarioNaoLogado):
            print "Usuário não está logado."


    def __logarUsuario(self):
        login = raw_input("Forneça login: "******"Forneça senha: ")
        try:
            self.__scrumPy.logarUsuario(login, senha)
        except (UsuarioNaoExiste):
            print "Usuário não existe."
        except (SenhaInvalida):
            print "Senha incorreta."


    def __criarUsuario(self):
        nome = raw_input("Forneça nome usuário: ")
        login = raw_input("Forneça login: "******"Forneça senha: ")
        try:
            self.__scrumPy.cadastrarUsuario(nome, login, senha)
        except (LoginJaExiste):
            print "Login já existe."
        except (UsuarioNaoLogado):
            print "Usuário não está logado."
        except (UsuarioSemPermissao):
            print "Usuário não tem permissão para a opção escolhida."


    def __obterProjetoAtual(self):
        try:
            print self.__scrumPy.obterProjetoAtual()
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."

    def __obterUsuarioAtual(self):
        try:
            print self.__scrumPy.obterUsuarioAtual()
        except (UsuarioNaoLogado):
            print "Usuário não está logado."

    def __exibirTarefas(self,tarefas):
        if tarefas[0] == []:
            print "Sem tarefas pendentes"
        else:
            print "Tarefas pendentes: "
        for tarefa in tarefas[0]:
            print tarefa
            
        if tarefas[1] == []:
            print "Sem tarefas concluídas"
        else:
            print "Tarefas concluídas: "
        for concluida in tarefas[1]:
            print concluida

    def __criarTarefa(self):
        nome = raw_input("Forneça o nome: ")
        descricao = raw_input("Forneça a descricao: ")
        dificuldade = raw_input("Forneça a dificuldade: ")
        estimativa = raw_input("Forneça a estimativa: ")
        try:
            tarefas = self.__scrumPy.obterTarefas()
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."
        tarefasPreRequisito = []
        if tarefas[0] != [] or tarefas[1] != []:
            self.__exibirTarefas(tarefas)
            print "Forneça um idTarefa pré-requisito por linha. Uma linha em branco encerra a lista"
            id = None
            while id != "":
                id = raw_input()
                if id != "":
                    tarefasPreRequisito += [id]
        
        try:
            self.__scrumPy.criarTarefa(nome, descricao, dificuldade, tarefasPreRequisito, estimativa)
        except (TarefaJaExiste):
            print "Nome de tarefa já existe"
        except (TarefaNaoExiste):
            print "Uma tarefa fornecida não existe"
        except (SemProjetoAberto):
            print "Nenhum projeto aberto."
        except (UsuarioSemPermissao):
            print "Usuário não tem permissão para a opção escolhida."
        except (UsuarioNaoLogado):
            print "Usuário não está logado."

    def __acelerarInput(self):
        self.__scrumPy.logarUsuario("admin", "admin")
        self.__scrumPy.cadastrarUsuario("t0", "t0","t0")
        self.__scrumPy.cadastrarUsuario("t1", "t1","t1")
        self.__scrumPy.cadastrarUsuario("s", "s","s")
        self.__scrumPy.cadastrarUsuario("p", "p","p")
        self.__scrumPy.criarProjeto("Projeto Teste", ["admin", "t0"], "p", "s")
        self.__scrumPy.logarUsuario("p", "p")
        self.__scrumPy.abrirProjeto("PROJ-0")
        self.__scrumPy.criarTarefa("Tarefa teste 0", "Testando tarefa 0", "2", [], "5")
        self.__scrumPy.criarTarefa("Tarefa teste 1", "Testando tarefa 1", "2", [], "5")
        self.__scrumPy.criarTarefa("Tarefa teste 2", "Testando tarefa 2", "1", ['TAR-0'], "3")
        self.__scrumPy.criarTarefa("Tarefa teste 3", "Testando tarefa 3", "4", ['TAR-0'], "3")
        self.__scrumPy.logarUsuario("t0", "t0")
        self.__scrumPy.abrirProjeto("PROJ-0")
        self.__scrumPy.marcarTarefaConcluida("TAR-0")
        self.__scrumPy.logarUsuario("p", "p")
        self.__scrumPy.abrirProjeto("PROJ-0")
        self.__scrumPy.criarEstoria("Estória teste 0", "Testando estória 0", ['TAR-1', 'TAR-2'])
        self.__scrumPy.criarEstoria("Estória teste 1", "Testando estória 1", ['TAR-2', 'TAR-3'])
        self.__scrumPy.criarSprintBackLog(32, ['EST-0'], {'TAR-1': 't0', 'TAR-2': 'admin'})
    
    def __exibirIntroducao(self):
        print "INE5417 - ENGENHARIA DE SOFTWARE I"
        print "ITERAÇÃO 1 - SCRUMPY"
        print "ALUNOS: PEDRO PAULO V. CAMPOS, RAFAEL E. PEDRETTI, JUAREZ A. PIAZZA SACENTI"
    
    def __exibirMenu(self):
        print "\nEscolha uma opção:"
        print "oua - Obter Usuário Atual"
        print "opa - Obter Projeto Atual"
        print "cu  - Criar Usuário"
        print "lu  - Logar Usuário"
        print "ou  - Obter Usuários"
        print "cp  - Criar Projeto"
        print "opp - Obter Projetos Participados"
        print "ap  - Abrir Projeto"
        print "oe  - Obter Estorias"
        print "csb - Criar Sprint BackLog"
        print "ot  - Obter Tarefas"
        print "ce  - Criar Estoria"
        print "ct  - Criar Tarefa"
        print "mtc - Marcar Tarefa como Concluída"   
Ejemplo n.º 3
0
 def setUp(self):
     scrumpy = ScrumPy()
     scrumpy.cadastrarUsuario('rafael', 'pepe', '123')
     self.projeto = Projeto('proj', 'pepe', 'pepe', 'pepe', 'proj1')