예제 #1
0
 def test_metodo_executar(self):
     dados = {
         'algoritmo': 'CSV',
         'arquivo': 'integrador/dados/arquivo1.csv'
     }
     objeto = Estrategia_CSV()
     dados_retornados = objeto.execute(dados)
     assert type(dados_retornados) is list
예제 #2
0
from integrador.classes.Estrategias import Estrategia_CSV
from integrador.classes.Estrategias import Estrategia_SQLite
from integrador.classes.Estrategias import Estrategia_Texto1
from integrador.classes.Estrategias import Estrategia_Texto2

estrategias = {
    'csv': Estrategia_CSV(),
    'sqlite': Estrategia_SQLite(),
    'texto_1': Estrategia_Texto1(),
    'texto_2': Estrategia_Texto2(),
}

class Contexto():
    """
    Contexto do integrador
    Objeto responsável por armazenar o algoritmo (estratégia)
    e os dados de acesso (credenciais)
    """
    def __init__(self, **kwargs):
        try:
            algoritmo_escolhido = kwargs['algoritmo'].lower()
            objeto = estrategias[algoritmo_escolhido]
        except KeyError:
            raise Exception('Algoritmo não implementado')
        self._algoritmo = objeto
        self._dados = kwargs
        if not self._dados_credenciais_validos():
            esperado = str(self._algoritmo.parametros_necessarios())
            raise Exception('Credendiais inválidas. Necessário: ' + esperado)
예제 #3
0
 def test_metodo_parametros_necessarios(self):
     objeto = Estrategia_CSV()
     dados_retornados = objeto.parametros_necessarios()
     assert type(dados_retornados) is tuple
     assert dados_retornados == ('algoritmo', 'arquivo')
예제 #4
0
 def test_instanciar_classe(self):
     objeto = Estrategia_CSV()
     assert isinstance(objeto, Estrategia)
     assert isinstance(objeto, Estrategia_CSV)