def teste_abrir_conexao_usuario_ou_senha_vazios(self):
     with self.assertRaises(SystemExit) as ex:
         Conexao("", "SenhaFalsa", self.BANCO_TESTE, self.COLLECTION_TESTE)
     self.assertEqual(ex.exception.code, 1)
     with self.assertRaises(SystemExit) as ex:
         Conexao("usuarioErrado", "", self.BANCO_TESTE,
                 self.COLLECTION_TESTE)
     self.assertEqual(ex.exception.code, 1)
     with self.assertRaises(SystemExit) as ex:
         Conexao("", "", self.BANCO_TESTE, self.COLLECTION_TESTE)
     self.assertEqual(ex.exception.code, 1)
    def alterar(self, revision_deploy_stg=None, revision_deploy_prd=None, data_deploy_stg=None, data_deploy_prd=None,
                cobertura_testes_unitarios=None, dependencias=list(), load_balance_backend=None,
                quantidade_issues_total=None, numero_mudanca=None,
                quantidade_testes_unitarios=None, quantidade_smoke_tests=None, quantidade_testes_regressivos=None,
                status_deploy_prd=None):
        string_busca = '{"projeto":"' + self.nome_projeto + '"}'
        # Montagem da string de alteracao
        string_alteracao = '{'
        if revision_deploy_stg:
            string_alteracao += '"revision_deploy_stg":"' + revision_deploy_stg + '",'
        if revision_deploy_prd:
            string_alteracao += '"revision_deploy_prd":"' + revision_deploy_prd + '",'
        if data_deploy_stg:
            string_alteracao += '"data_deploy_stg":"' + data_deploy_stg + '",'
        if data_deploy_prd:
            string_alteracao += '"data_deploy_prd":"' + data_deploy_prd + '",'
        if status_deploy_prd:
            string_alteracao += '"status_deploy_prd":"' + status_deploy_prd + '",'
        if cobertura_testes_unitarios:
            string_alteracao += '"cobertura_testes_unitarios":"' + str(cobertura_testes_unitarios) + '",'
        if dependencias:

            string_alteracao += '"quantidade_issues_findbugs":['
            for dependencia in dependencias:
                dados_dependencia = dependencia.split(":")
                dependencia_nome = dados_dependencia[0]
                quantidade_issues_dependencia = dados_dependencia[1]
                string_alteracao += '{"dependencia":"' + dependencia_nome + '",'
                string_alteracao += '"quantidade_issues":"' + str(quantidade_issues_dependencia) + '"},'
            string_alteracao += '],'

        if quantidade_issues_total:
            string_alteracao += '"quantidade_issues_total_aplicacao":"' + str(quantidade_issues_total) + '",'
        if numero_mudanca:
            string_alteracao += '"numero_mudanca":"' + numero_mudanca + '",'
        if quantidade_testes_unitarios:
            string_alteracao += '"quantidade_testes_unitarios":"' + str(quantidade_testes_unitarios) + '",'
        if load_balance_backend:
            string_alteracao += '"load_balance_backend":"' + load_balance_backend + '",'
        if quantidade_smoke_tests:
            string_alteracao += '"quantidade_smoke_tests":"' + str(quantidade_smoke_tests) + '",'
        if quantidade_testes_regressivos:
            string_alteracao += '"quantidade_testes_regressivos":"' + str(quantidade_testes_regressivos) + '",'
        string_alteracao += '}'
        string_alteracao = string_alteracao.replace(',}', '}').replace(',]', ']')

        if string_alteracao == '{}':
            Log.imprime("NENHUMA ALTERACAO FOI FEITA.", classe=InformacoesArtefatos)
        else:
            self.__conexao = Conexao(USUARIO_GO_API, SENHA_GO_API, "qa_informacoes_entrega_continua", self.equipe)
            Operacoes.alterar_json(self.colecao, string_busca, string_alteracao)
            self.__conexao.fechar_conexao()
Ejemplo n.º 3
0
    def setUpClass(cls):
        environ["CCTI_CLASS"] = "SUPORTE A HARDWARE"
        environ["CCTI_CATEGORY"] = "Switchs / Roteadores"
        environ["CCTI_TYPE"] = "Mudança"
        environ["CCTI_ITEM"] = "Hardware"
        environ["ID_FILA_EQUIPE"] = "50"

        cls.info_artefato = InformacoesArtefatos(cls.NOME_EQUIPE,
                                                 cls.NOME_PROJETO)
        cls.mudanca_automatica = CriarMudancaAutomatica(
            cls.NOME_EQUIPE, cls.NOME_PROJETO)
        cls.mongo = Operacoes()
        conexao = Conexao(USUARIO_GO_API, SENHA_GO_API,
                          "qa_informacoes_entrega_continua", cls.NOME_EQUIPE)
        cls.colecao = conexao.obter_colecao()
 def setUpClass(cls):
     usuario_teste = "teste_usuario"
     senha_teste = "0GpAsVbh"
     banco_teste = "teste_mongo"
     collection_teste = "teste_unitario"
     cls.conexao = Conexao(usuario_teste, senha_teste, banco_teste,
                           collection_teste)
     cls.colecao = cls.conexao.obter_colecao()
    def __init__(self, equipe, nome_projeto):
        if not nome_projeto:
            Log.imprime("NOME DO PROJETO NAO FOI INFORMADO.", "OCORREU UM ERRO AO OBTER UMA INFORMACAO NECESSARIA.",
                        classe=InformacoesArtefatos)
            exit(1)

        if not equipe:
            Log.imprime("NOME DA EQUIPE NAO FOI INFORMADO.", "OCORREU UM ERRO AO OBTER UMA INFORMACAO NECESSARIA.",
                        classe=InformacoesArtefatos)
            exit(1)

        self.equipe = equipe
        self.nome_projeto = nome_projeto
        self.__conexao = Conexao(USUARIO_GO_API, SENHA_GO_API, "qa_informacoes_entrega_continua", self.equipe)
        self.colecao = self.__conexao.obter_colecao()
        self.projeto = self.__busca_projeto()
        self.__conexao.fechar_conexao()
 def teste_acessar_banco_com_nome_vazio(self):
     conexao = Conexao(self.USUARIO_TESTE, self.SENHA_TESTE, "",
                       self.COLLECTION_TESTE)
     with self.assertRaises(SystemExit) as ex:
         conexao.acessar_banco("")
     conexao.fechar_conexao()
     self.assertEqual(ex.exception.code, 1)
 def teste_acessar_banco_nao_existente(self):
     conexao = Conexao(self.USUARIO_TESTE, self.SENHA_TESTE,
                       self.BANCO_TESTE, self.COLLECTION_TESTE)
     with self.assertRaises(SystemExit) as ex:
         conexao.acessar_banco("NaoExiste")
     conexao.fechar_conexao()
     self.assertEqual(ex.exception.code, 3)
 def teste_abrir_conexao_usuario_e_senha_invalidos(self):
     with self.assertRaises(OperationFailure) as ex:
         Conexao("usuarioErrado", "SenhaFalsa", self.BANCO_TESTE,
                 self.COLLECTION_TESTE)
     self.assertNotEqual(ex.exception.code, 0)
 def teste_abrir_conexao_usuario_e_senha_validos(self):
     conexao = Conexao(self.USUARIO_TESTE, self.SENHA_TESTE,
                       self.BANCO_TESTE, self.COLLECTION_TESTE)
     self.assertTrue(conexao)
     conexao.fechar_conexao()
 def teste_acessar_banco_existente(self):
     conexao = Conexao(self.USUARIO_TESTE, self.SENHA_TESTE,
                       self.BANCO_TESTE, self.COLLECTION_TESTE)
     valor_obtido = conexao.acessar_banco(self.BANCO_TESTE)
     conexao.fechar_conexao()
     self.assertTrue(valor_obtido)
 def teste_acessar_colecao_sem_acessar_banco(self):
     conexao = Conexao(self.USUARIO_TESTE, self.SENHA_TESTE)
     with self.assertRaises(SystemExit) as ex:
         conexao.acessar_colecao(self.COLLECTION_TESTE)
     conexao.fechar_conexao()
     self.assertEqual(ex.exception.code, 2)
class InformacoesArtefatos(object):

    def __init__(self, equipe, nome_projeto):
        if not nome_projeto:
            Log.imprime("NOME DO PROJETO NAO FOI INFORMADO.", "OCORREU UM ERRO AO OBTER UMA INFORMACAO NECESSARIA.",
                        classe=InformacoesArtefatos)
            exit(1)

        if not equipe:
            Log.imprime("NOME DA EQUIPE NAO FOI INFORMADO.", "OCORREU UM ERRO AO OBTER UMA INFORMACAO NECESSARIA.",
                        classe=InformacoesArtefatos)
            exit(1)

        self.equipe = equipe
        self.nome_projeto = nome_projeto
        self.__conexao = Conexao(USUARIO_GO_API, SENHA_GO_API, "qa_informacoes_entrega_continua", self.equipe)
        self.colecao = self.__conexao.obter_colecao()
        self.projeto = self.__busca_projeto()
        self.__conexao.fechar_conexao()

    def __busca_projeto(self):
        string_busca = '{"projeto":"' + self.nome_projeto + '"}'
        documentos_encontrados = Operacoes.buscar_json(self.colecao, string_busca)

        if documentos_encontrados.count() == 0:
            Log.imprime("A BUSCA NAO RETORNOU NENHUM DOCUMENTO REFERENTE AO PROJETO.\nNOME DE PROJETO INFORMADO: " +
                        self.nome_projeto + "INSERINDO PROJETO NO MONGO", classe=InformacoesArtefatos)

            Operacoes.inserir_json(self.colecao, string_busca)

        self.__conexao.fechar_conexao()
        return documentos_encontrados[0]

    def alterar(self, revision_deploy_stg=None, revision_deploy_prd=None, data_deploy_stg=None, data_deploy_prd=None,
                cobertura_testes_unitarios=None, dependencias=list(), load_balance_backend=None,
                quantidade_issues_total=None, numero_mudanca=None,
                quantidade_testes_unitarios=None, quantidade_smoke_tests=None, quantidade_testes_regressivos=None,
                status_deploy_prd=None):
        string_busca = '{"projeto":"' + self.nome_projeto + '"}'
        # Montagem da string de alteracao
        string_alteracao = '{'
        if revision_deploy_stg:
            string_alteracao += '"revision_deploy_stg":"' + revision_deploy_stg + '",'
        if revision_deploy_prd:
            string_alteracao += '"revision_deploy_prd":"' + revision_deploy_prd + '",'
        if data_deploy_stg:
            string_alteracao += '"data_deploy_stg":"' + data_deploy_stg + '",'
        if data_deploy_prd:
            string_alteracao += '"data_deploy_prd":"' + data_deploy_prd + '",'
        if status_deploy_prd:
            string_alteracao += '"status_deploy_prd":"' + status_deploy_prd + '",'
        if cobertura_testes_unitarios:
            string_alteracao += '"cobertura_testes_unitarios":"' + str(cobertura_testes_unitarios) + '",'
        if dependencias:

            string_alteracao += '"quantidade_issues_findbugs":['
            for dependencia in dependencias:
                dados_dependencia = dependencia.split(":")
                dependencia_nome = dados_dependencia[0]
                quantidade_issues_dependencia = dados_dependencia[1]
                string_alteracao += '{"dependencia":"' + dependencia_nome + '",'
                string_alteracao += '"quantidade_issues":"' + str(quantidade_issues_dependencia) + '"},'
            string_alteracao += '],'

        if quantidade_issues_total:
            string_alteracao += '"quantidade_issues_total_aplicacao":"' + str(quantidade_issues_total) + '",'
        if numero_mudanca:
            string_alteracao += '"numero_mudanca":"' + numero_mudanca + '",'
        if quantidade_testes_unitarios:
            string_alteracao += '"quantidade_testes_unitarios":"' + str(quantidade_testes_unitarios) + '",'
        if load_balance_backend:
            string_alteracao += '"load_balance_backend":"' + load_balance_backend + '",'
        if quantidade_smoke_tests:
            string_alteracao += '"quantidade_smoke_tests":"' + str(quantidade_smoke_tests) + '",'
        if quantidade_testes_regressivos:
            string_alteracao += '"quantidade_testes_regressivos":"' + str(quantidade_testes_regressivos) + '",'
        string_alteracao += '}'
        string_alteracao = string_alteracao.replace(',}', '}').replace(',]', ']')

        if string_alteracao == '{}':
            Log.imprime("NENHUMA ALTERACAO FOI FEITA.", classe=InformacoesArtefatos)
        else:
            self.__conexao = Conexao(USUARIO_GO_API, SENHA_GO_API, "qa_informacoes_entrega_continua", self.equipe)
            Operacoes.alterar_json(self.colecao, string_busca, string_alteracao)
            self.__conexao.fechar_conexao()

    def obter_revision_deploy_stg(self):
        return self.projeto.get("revision_deploy_stg")

    def obter_revision_deploy_prd(self):
        if self.projeto.get("revision_deploy_prd"):
            return self.projeto.get("revision_deploy_prd")
        else:
            return 0

    def obter_data_deploy_stg(self):
        return self.projeto.get("data_deploy_stg")

    def obter_data_deploy_prd(self):
        return self.projeto.get("data_deploy_prd")

    def obter_cobertura_testes_unitarios(self):
        return self.projeto.get("cobertura_testes_unitarios")

    def obter_numero_mudanca(self):
        return self.projeto.get("numero_mudanca")

    def obter_load_balance_backend(self):
        return self.projeto.get("load_balance_backend")

    def obter_status_deploy_prd(self):
        if self.projeto.get("status_deploy_prd") == "I":
            return "I"
        else:
            return "F"

    def obter_quantidade_issues_findbugs(self):
        lista_dependencias = []
        lista_dependencias_dict = self.__busca_projeto().get("quantidade_issues_findbugs")
        for dependencia_dict in lista_dependencias_dict:
            nome_dependencia = dependencia_dict.get("dependencia")
            quantidade_issues_dependencia = dependencia_dict.get("quantidade_issues")
            lista_dependencias.append(nome_dependencia + ':' + quantidade_issues_dependencia)
        return lista_dependencias

    def obter_quantidade_issues_total_aplicacao(self):
        return self.projeto.get("quantidade_issues_total_aplicacao")

    def obter_quantidade_testes_unitarios(self):
        return self.projeto.get("quantidade_testes_unitarios")

    def obter_quantidade_smoke_tests(self):
        return self.projeto.get("quantidade_smoke_tests")

    def obter_quantidade_testes_regressivos(self):
        return self.projeto.get("quantidade_testes_regressivos")