Exemple #1
0
    def test_nao_executar_comando_sql_com_a_pasta_de_sql_vazia(self):
        environ["PASTA_SCRIPT_SQL"] = "scripts\stg_sem_sql"

        banco_dados = BancoDados()
        resultado_atual = banco_dados.executar_script_sql_no_banco_dados()
        resultado_esperado = "NENJUM_SQL_NA_PASTA"
        self.assertEquals(resultado_esperado, resultado_atual)
Exemple #2
0
    def test_obter_versao_svn_com_dois_numeros_na_segunda_parte(self):
        arq = open(
            WORKING_DIRECTORY +
            "\\scripts\\stg\\V1_2__ScriptTesteUnitario.sql", "w")
        arq.close()
        arq = open(
            WORKING_DIRECTORY +
            "\\scripts\\stg\\V1_9__ScriptTesteUnitario.sql", "w")
        arq.close()
        arq = open(
            WORKING_DIRECTORY +
            "\\scripts\\stg\\V1_10__ScriptTesteUnitario.sql", "w")
        arq.close()

        banco_dados = BancoDados()
        resultado_atual = banco_dados.obter_versao_svn()

        resultado_esperado = '1.10'
        self.assertEqual(resultado_esperado, resultado_atual)

        remove(WORKING_DIRECTORY +
               "\\scripts\\stg\\V1_2__ScriptTesteUnitario.sql")
        remove(WORKING_DIRECTORY +
               "\\scripts\\stg\\V1_9__ScriptTesteUnitario.sql")
        remove(WORKING_DIRECTORY +
               "\\scripts\\stg\\V1_10__ScriptTesteUnitario.sql")
Exemple #3
0
    def test_criar_tabela_schema_migrate(self):

        environ["NOME_BANCO"] = "DEV_INFG_CelulaQualidade_DSV"

        # Dado que na base ainda não tenha a tabela schema_migrate criado
        # Quando executo o flayway para criar a tabela schema_migrate
        banco_dados = BancoDados()
        resultado_atual = banco_dados.criar_tabelas_necessarias_para_flyway()
        # Então verifico que a tabela foi criada com sucesso
        self.assertTrue(resultado_atual)
Exemple #4
0
    def test_executar_com_sucesso_novos_script_sql_no_banco_dados_staging_com_snapshot(
            self):
        # Dado que eu tenha baixado os scripts sql no
        print("Quando executo os scripts SQL em STG")
        banco_dados = BancoDados()
        banco_dados.executar_script_sql_no_banco_dados()

        print(
            "Então verifico que a versao so svn eh igual do banco de STG Trunk"
        )
        versao_esperada = "1.2"
        versao_atual = banco_dados.obter_versao_svn()

        self.assertEquals(versao_esperada, versao_atual)
Exemple #5
0
    def test_nao_em_criar_backup_para_banco_dados_inexistente(self):

        # Dado que nao exista a base de dados DEV_INFG_CelulaQualidade_ERRO
        environ["NOME_BANCO_STG"] = "DEV_INFG_CelulaQualidade_ERRO"

        # Quando tento criar o backup do banco
        banco_dados = BancoDados()

        with self.assertRaises(SystemExit) as error:
            banco_dados.criar_backup()

        # Entao recebo Exception 1
        self.assertEqual(1, error.exception.code,
                         " Houve um ERRO EXIT diferente de 1 ")
Exemple #6
0
    def test_restaurar_backup_de_uma_base_existente(self):

        banco_dados_stg = BancoDados()

        # Quando tento criar o backup do banco E tento restaurar
        banco_dados_stg.criar_backup()
        banco_dados_stg.restaurar_banco_dados_com_ultima_versao_stg()

        # Entao verifico que o arquivo de backup foi criado
        resultado_esperado = 'successfully' in open(
            'log_comandoCriarBackup.txt').read()
        self.assertTrue(resultado_esperado)

        # Entao banco de dados e colocado em Offline
        tamanho_arquivo_log = stat("log_comandoSetOffLine.txt").st_size
        self.assertTrue(tamanho_arquivo_log == 0)

        # Entao o backup é restaurado com sucesso
        resultado_atual = False
        if 'processed' in open('log_comandoRestaurarBackup.txt').read():
            resultado_atual = True

        self.assertTrue(resultado_atual)

        # Então banco de dados e colocado em Online
        tamanho_arquivo_log = stat("log_comandoSetOnLine.txt").st_size
        self.assertTrue(tamanho_arquivo_log == 0)
Exemple #7
0
    def test_nao_criar_dois_snapshot_com_mesmo_nome(self):

        # Dado que possua um snapshot com o nome DEV_INFG_MOTOR_SNAPSHOT
        environ["NOME_BANCO"] = "DEV_INFG_CelulaQualidade_HOM"
        banco_dados = BancoDados()
        banco_dados.criar_snapshot()

        # Quando tento criar um novo snapshot com mesmo nome DEV_INFG_MOTOR_SNAPSHOT
        with self.assertRaises(SystemExit) as error:
            banco_dados.criar_snapshot()

        # Entao recebo Exception 1
        banco_dados.remover_snapshot()
        self.assertEqual(1, error.exception.code,
                         " Houve um ERRP EXIT diferente de 1")
Exemple #8
0
    def test_realizar_failback_de_um_snapshot_criado_com_sucesso_ja_com_a_tabela_migrate_existente(
            self):

        print("Dado que eu tenha no Banco as tabelas migrate e branch")
        print("Quando executo os scripts SQL em STG")
        environ["NOME_BANCO"] = "DEV_INFG_CelulaQualidade_HOM"
        banco_dados = BancoDados()
        banco_dados.criar_snapshot()
        banco_dados.executar_script_sql_no_banco_dados()

        print("E tento realizar Failback")
        banco_dados.realizar_failback_no_banco_dados()

        print("Entao verifico que o failback foi realizado com sucesso")
        versao_implantada_esperada = "1"
        versao_implantada_atual_prd = banco_dados.obter_versao(
            "INFOSQLDSV", "DEV_INFG_Jenkins", "DEV_INFG_CelulaQualidade_HOM",
            "95QlyafTZ2s8")
        self.assertEquals(versao_implantada_esperada,
                          versao_implantada_atual_prd)
Exemple #9
0
    def test_executar_com_sucesso__novos_script_sql_no_banco_dados_producao(
            self):

        print("Quando executo os scripts SQL em STG")
        environ["NOME_BANCO"] = "DEV_INFG_CelulaQualidade_DSV"
        banco_dados_stg = BancoDados()
        banco_dados_stg.executar_script_sql_no_banco_dados()

        print(
            "Então verifico que as versoes de STG Trunk e da pasta testes\scripts\stg sao iguais"
        )
        versao_implantada_esperada = "1.2"
        versao_implantada_atual_stg = banco_dados_stg.obter_versao(
            "INFOSQLDSV", "DEV_INFG_Jenkins", "DEV_INFG_CelulaQualidade_DSV",
            "95QlyafTZ2s8")

        self.assertEquals(versao_implantada_esperada,
                          versao_implantada_atual_stg)

        print("Dado que nao tenha executado os scripts SQLs na base de PRD")
        environ["AMBIENTE_SVN"] = "PRD_TRUNK"
        environ["NOME_BANCO_STG"] = "DEV_INFG_CelulaQualidade_DSV"
        environ["NOME_BANCO"] = "DEV_INFG_CelulaQualidade_HOM"

        print("Quando executo os scripts SQL em PRD")
        banco_dados_prd = BancoDados()
        banco_dados_prd.executar_script_sql_no_banco_dados()

        # Entao verifico que as versoes de STG e PRD sao iguais
        versao_implantada_esperada = "1.2"
        versao_implantada_atual_prd = banco_dados_prd.obter_versao(
            "INFOSQLDSV", "DEV_INFG_Jenkins", "DEV_INFG_CelulaQualidade_HOM",
            "95QlyafTZ2s8")

        self.assertEquals(versao_implantada_esperada,
                          versao_implantada_atual_prd)
Exemple #10
0
    def test_restaurar_backup_de_prd_em_uma_base_stg(self):
        environ["USUARIO_BANCO"] = "INFG_Jenkins"
        environ["SENHA_BANCO"] = "95QlyafTZ2s8"
        environ["NOME_BANCO"] = "INFG_CelulaQualidade_DSV"
        environ["NOME_BANCO_LOGICO"] = "INFG_CelulaQualidade_DSV"
        environ["USUARIO_APLICAO_ACESSO_BANCO"] = "INFG_CelulaQualidade_DSV"
        banco_dados_stg = BancoDados()

        # Quando tento criar o backup do banco E tento restaurar
        banco_dados_stg.restaurar_banco_dados_stg_com_ultima_versao_prd()

        # Entao verifico que o arquivo de backup foi criado
        resultado_esperado = 'successfully' in open(
            'log_comandoCriarBackup.txt').read()
        self.assertTrue(resultado_esperado)

        # Entao banco de dados e colocado em Offline
        tamanho_arquivo_log = stat("log_comandoSetOffLine.txt").st_size
        self.assertTrue(tamanho_arquivo_log == 0)

        # Entao o backup é restaurado com sucesso
        resultado_atual = False
        if 'processed' in open('log_comandoRestaurarBackup.txt').read():
            resultado_atual = True

        self.assertTrue(resultado_atual)

        # Então banco de dados e colocado em Online
        tamanho_arquivo_log = stat("log_comandoSetOnLine.txt").st_size
        self.assertTrue(tamanho_arquivo_log == 0)

        environ["NOME_BANCO_STG"] = "DEV_INFG_CelulaQualidade_DSV"
        environ["NOME_BANCO_LOGICO"] = "DEV_INFG_CelulaQualidade_DSV"
        banco_dados_stg = BancoDados()

        # Removendo arquivo de bkp gerado pelo restaurar_banco_dados_stg_com_ultima_versao_prd() e
        # substituindo pelo backup com os dados anteriores ao processo para nao afetar os demais testes.
        arquivo_backup_atual = banco_dados_stg.CAMINHO_ARQUIVO_BACKUP + "DEV_INFG_CelulaQualidade_DSV-devops.bak"
        arquivo_backup_baseline = banco_dados_stg.CAMINHO_ARQUIVO_BACKUP + "DEV_INFG_CelulaQualidade_DSV-baseline.bak"
        remove(arquivo_backup_atual)
        copyfile(arquivo_backup_baseline, arquivo_backup_atual)

        banco_dados_stg.restaurar_banco_dados_com_ultima_versao_stg()
Exemple #11
0
    def setUp(cls):
        environ["NOME_BANCO"] = "DEV_INFG_CelulaQualidade_DSV"
        environ["USUARIO_BANCO"] = "DEV_INFG_Jenkins"
        environ["SENHA_BANCO"] = "95QlyafTZ2s8"
        environ["SERVIDOR_PORTA"] = "INFOSQLDSV"
        environ["PASTA_SCRIPT_SQL"] = "scripts\stg"
        environ["USUARIO_APLICAO_ACESSO_BANCO"] = "backup_Tempo_real"
        environ["AMBIENTE_SVN"] = "STG_TRUNK"
        environ[
            "CAMINHO_MDF_LDF"] = "D:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\DATA\\"
        environ["CAMINHO_GRAVAR_SNAPSHOT"] = "E:\\Snapshots\\"
        environ["SERVIDOR_PORTA_STG"] = "INFOSQLDSV"

        environ["NOME_BANCO_STG"] = "DEV_INFG_CelulaQualidade_HOM"
        environ["NOME_BANCO_LOGICO"] = "DEV_INFG_CelulaQualidade_HOM"

        banco_dados_prd = BancoDados()
        banco_dados_prd.restaurar_banco_dados_com_ultima_versao_stg()

        environ["NOME_BANCO_STG"] = "DEV_INFG_CelulaQualidade_DSV"
        environ["NOME_BANCO_LOGICO"] = "DEV_INFG_CelulaQualidade_DSV"

        banco_dados_stg = BancoDados()
        banco_dados_stg.restaurar_banco_dados_com_ultima_versao_stg()
Exemple #12
0
    def test_criar_com_sucesso_e_remover_snapshot_de_um_banco_existente(self):

        # Dado que nao possua um snapshot com o nome DEV_INFG_MOTOR_SNAPSHOT
        environ["NOME_BANCO"] = "DEV_INFG_CelulaQualidade_HOM"
        banco_dados = BancoDados()

        # Quando tento criar o snapshot
        banco_dados.criar_snapshot()

        # Entao o mesmo foi criado com sucesso
        tamanho_arquivo_log = stat("log_comandoCriarSnapshot.txt").st_size
        self.assertTrue(tamanho_arquivo_log == 0)

        # Quando tento remover o snapshot
        banco_dados.remover_snapshot()

        # Entao o mesmo foi removido com sucesso
        tamanho_arquivo_log = stat("log_comandoRemoverSnapshot.txt").st_size
        self.assertTrue(tamanho_arquivo_log == 0)