コード例 #1
0
 def teste_inserir_documento_valido(self):
     string_json = '{"projeto": "teste_inserir"}'
     retorno = Op.inserir_json(self.colecao, string_json)
     self.assertTrue(retorno)
     valor_obtido = Op.buscar_json(self.colecao, string_json).count()
     self.assertEqual(valor_obtido, 1)
     Op.excluir_json(self.colecao, string_json)
コード例 #2
0
 def teste_alterar_documento_valido(self):
     string_json_inserir = '{"projeto": "teste_altera"}'
     Op.inserir_json(self.colecao, string_json_inserir)
     string_json_alterar = '{"projeto": "teste_alterado"}'
     retorno = Op.alterar_json(self.colecao, string_json_inserir,
                               string_json_alterar)
     self.assertTrue(retorno)
     Op.excluir_json(self.colecao, string_json_alterar)
コード例 #3
0
    def teste_a_nao_abrir_uma_nova_mudanca_para_um_pipeline_ja_iniciado(self):
        string_busca = '{ "projeto": "' + "teste_unitario" + '"}'
        string_nova = '{"revision_deploy_prd":"' + "99" + '", "status_deploy_prd":"' + "I" + '"}'
        operacoes = Operacoes()
        operacoes.alterar_json(self.colecao, string_busca, string_nova)

        valor_esperado = self.info_artefato.obter_numero_mudanca()
        valor_obtido = self.mudanca_automatica.criar_mudanca_automatica()

        self.assertEqual(valor_esperado, valor_obtido)
コード例 #4
0
    def teste_b_nao_abrir_mudanca_quando_revision_do_gocd_for_igual_a_revision_do_mongo(
            self):
        string_busca = '{ "projeto": "' + "teste_unitario" + '"}'
        string_nova = '{"revision_deploy_prd":"' + "96644" + '", "status_deploy_prd":"' + "F" + '"}'
        operacoes = Operacoes()
        operacoes.alterar_json(self.colecao, string_busca, string_nova)

        valor_esperado = self.info_artefato.obter_numero_mudanca()
        valor_obtido = self.mudanca_automatica.criar_mudanca_automatica()

        self.assertEqual(valor_esperado, valor_obtido)
コード例 #5
0
    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]
コード例 #6
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()
コード例 #7
0
    def teste_c_abrir_mudanca_quando_revision_do_GoCd_for_diferente_que_no_Mongo(
            self, mock):
        # https://www.toptal.com/python/an-introduction-to-mocking-in-python
        string_busca = '{ "projeto": "' + "teste_unitario" + '"}'
        string_nova = '{"revision_deploy_prd":"' + "99" + '", "status_deploy_prd":"' + "F" + '"}'
        operacoes = Operacoes()
        operacoes.alterar_json(self.colecao, string_busca, string_nova)

        # valor_esperado = self.info_artefato.obter_numero_mudanca()
        valor_obtido = self.mudanca_automatica.criar_mudanca_automatica()
        mock.assert_called()

        self.assertIsNotNone(valor_obtido)
コード例 #8
0
 def teste_alterar_json_nova_vazia(self):
     string_json_inserir = '{"projeto": "teste_altera"}'
     Op.inserir_json(self.colecao, string_json_inserir)
     string_nova_json = '{}'
     with self.assertRaises(SystemExit) as ex:
         Op.alterar_json(self.colecao, string_json_inserir,
                         string_nova_json)
     self.assertEqual(ex.exception.code, 5)
     Op.excluir_json(self.colecao, string_json_inserir)
コード例 #9
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()
コード例 #10
0
 def teste_buscar_documento_inexistente(self):
     string_json = '{"projeto": "projetoFalso"}'
     valor_obtido = Op.buscar_json(self.colecao, string_json).count()
     self.assertEqual(valor_obtido, 0)
コード例 #11
0
 def teste_alterar_json_busca_vazia(self):
     string_json = '{}'
     string_nova = '{"projeto" : "teste_alterado}'
     with self.assertRaises(SystemExit) as ex:
         Op.alterar_json(self.colecao, string_json, string_nova)
     self.assertEqual(ex.exception.code, 4)
コード例 #12
0
 def teste_inserir_documento_sem_fornecer_a_colecao(self):
     string_json = '{"projeto": "teste_inserir"}'
     with self.assertRaises(SystemExit) as ex:
         Op.buscar_json(None, string_json)
     self.assertEqual(ex.exception.code, 1)
コード例 #13
0
 def teste_excluir_documento_inexistente(self):
     string_json = '{"projeto": "projetoFalso"}'
     retorno = Op.excluir_json(self.colecao, string_json)
     self.assertFalse(retorno)
コード例 #14
0
 def teste_inserir_json_vazio(self):
     string_json = '{}'
     with self.assertRaises(SystemExit) as ex:
         Op.inserir_json(self.colecao, string_json)
     self.assertEqual(ex.exception.code, 3)
コード例 #15
0
 def teste_alterar_documento_inexistente(self):
     string_json = '{"projeto": "teste_altera"}'
     string_nova_json = '{"projeto": "teste_alterado"}'
     retorno = Op.alterar_json(self.colecao, string_json, string_nova_json)
     self.assertFalse(retorno)
コード例 #16
0
 def teste_buscar_documento_existente(self):
     string_json = '{"projeto": "teste_busca"}'
     valor_obtido = Op.buscar_json(self.colecao, string_json)[0]
     valor_esperado = "teste_busca"
     self.assertEqual(valor_obtido.get("projeto"), valor_esperado)
コード例 #17
0
 def teste_buscar_com_json_vazio(self):
     string_json = '{}'
     with self.assertRaises(SystemExit) as ex:
         Op.buscar_json(self.colecao, string_json).count()
     self.assertEqual(ex.exception.code, 3)
コード例 #18
0
 def teste_buscar_com_string_vazia(self):
     string_json = ''
     with self.assertRaises(SystemExit) as ex:
         Op.buscar_json(self.colecao, string_json)
     self.assertEqual(ex.exception.code, 2)