Пример #1
0
    def test_3_add_placar_1(self):
        '''
        3 - Teste de adicionar placar 1.

        Ao adicionar um jogo com placar de 12 pontos numa tabela vazia,
        a primeira linha deve ser igual à variável "valores". Testa o método
        "adicionar_placar" validando seu último bloco de expressões condicionais.
        '''

        bd = BD(CAMINHO)
        bd.define_tabela("51")
        valores = (1, 12, 12, 12, 0, 0)
        bd.adiciona_placar(12, "primeiro jogo")
        itens = bd.printa_tabela()[0]
        bd.encerra()
        self.deleta_BD()

        self.assertEqual(itens[0], valores)
Пример #2
0
    def test_2_tabela_vazia(self):
        '''
        2 - Testar uma tabela vazia.

        Espera-se que uma tabela recém criada tenha seis colunas
        e nenhuma linha. Testa os métodos "printa_tabela" e
        "define_tabela".
        '''

        bd = BD(CAMINHO)
        bd.define_tabela("2020")
        self.assertEqual(bd.tabela, "temporada_2020")
        itens, colunas = bd.printa_tabela()
        bd.encerra()
        self.deleta_BD()

        self.assertEqual(itens, [])
        self.assertEqual(len(colunas), 6)
Пример #3
0
    def cli(self):
        '''
        Método que inicia a visão CLI.

        Cria uma instância da classe Cli enviando a lista de BDs encontrados no diretório.
        O usuário escolhe um BD e uma temporada para iniciar o programa.
        
        Em seguida inicia-se um laço que recebe instruções do usuário e executa ações no
        BD modelado pelo script banco.py
        '''
        def escolha_tabela():
            '''
            Função invocada para que se defina uma temporada.

            Caso haja mais de uma, a visão mostra ao usuário opções de escolha;
            Caso haja apenas uma, esta temporada é escolhida;
            Caso não haja nenhuma, é criada uma temporada com numeração do ano atual.
            '''

            tabelas = bd.verifica_tabelas()
            tabelas = [x[0] for x in tabelas]

            if len(tabelas) > 1:
                temporada = self.visao.escolhe_temporada(tabelas).replace(
                    "temporada_", "")

            elif len(tabelas) == 1:
                temporada = tabelas[0].replace("temporada_", "")

            else:
                temporada = datetime.now().year

            return temporada

        self.visao = Cli(self.bancos)
        nome_bd, temporada = self.visao.escolhe_banco()

        bd = BD(self.diretorio + nome_bd)

        if temporada == 0:
            temporada = escolha_tabela()

        bd.define_tabela(temporada)

        while True:
            escolha_menu, parametro = self.visao.menu(nome_bd, bd.tabela)
            if "Sair" in escolha_menu:
                bd.encerra()
                quit()

            elif "Consultar outras estatísticas" in escolha_menu:
                estats_1, estats_2, colunas_1, colunas_2 = bd.printa_tabela_2()
                self.visao.consultar_tabela(estats_1, colunas_1)
                self.visao.consultar_tabela(estats_2, colunas_2)

            elif "Alterar BD" in escolha_menu:
                self.busca_bds()
                self.bancos.remove(nome_bd)
                if len(self.bancos) < 1:
                    escolha = self.visao.opcoes_BD("abortar", escolha_menu)

                else:
                    escolha = self.visao.opcoes_BD(self.bancos, escolha_menu)

                if "Sair" not in escolha:
                    bd.encerra()
                    bd = BD(self.diretorio + escolha)
                    nome_bd = escolha

                    temporada = escolha_tabela()
                    bd.define_tabela(temporada)

            elif "Deletar BD" in escolha_menu:
                self.busca_bds()
                self.bancos.remove(nome_bd)

                if len(self.bancos) < 1:
                    escolha = self.visao.opcoes_BD("abortar", escolha_menu)

                else:
                    escolha = self.visao.opcoes_BD(self.bancos, escolha_menu)

                    if "Sair" not in escolha:
                        if os.path.isfile(self.diretorio + escolha):
                            os.remove(self.diretorio + escolha)

            elif "Deletar temporada" in escolha_menu:
                escolha = self.visao.deletar_temporada(bd.verifica_tabelas(),
                                                       parametro)
                if "Sair" not in escolha:
                    bd.deleta_tabela(escolha)

            elif "Alterar/Criar temporada" in escolha_menu:
                escolha, temporada = self.visao.alterar_temporada(
                    bd.verifica_tabelas(), bd.tabela)

                if "Criar nova temporada" in escolha:
                    bd.tabela = f"temporada_{temporada}"
                    bd.cria_tabela()

                elif "temporada_" in escolha:
                    bd.tabela = escolha

            elif "Consultar estatísticas" in escolha_menu:
                dados = bd.printa_tabela()
                self.visao.consultar_tabela(dados[0], dados[1])

            elif "Adicionar um jogo" in escolha_menu:
                itens_serie = bd.retorna_tabela("inteira")

                if len(itens_serie) > 0:
                    ultima_linha = bd.retorna_tabela("última linha")[0][2:]
                    placar_min, placar_max, quebra_min, quebra_max = ultima_linha

                    tipo = "normal"

                    if parametro < placar_min:
                        tipo = "novo mínimo"
                        quebra_min += 1
                        print(
                            "Um novo placar mínimo foi registrado na temporada!"
                        )

                    elif parametro > placar_max:
                        tipo = "novo máximo"
                        quebra_max += 1
                        print(
                            "Um novo placar máximo foi registrado na temporada!"
                        )

                    bd.adiciona_placar([
                        parametro, placar_min, placar_max, quebra_min,
                        quebra_max
                    ], tipo)

                else:
                    bd.adiciona_placar(parametro, "primeiro jogo")