예제 #1
0
 def test_deve_buscar_etfs_apenas_uma_vez_na_b3(self, busca_etfs_na_b3):
     self.__reset_etfs()
     busca_etfs_na_b3.return_value = ['BOVA', 'DIVO']
     assert e_tipo_etf('BOVA11')
     assert e_tipo_etf('BOVA11')
     assert e_tipo_etf('DIVO11')
     assert busca_etfs_na_b3.call_count == 1
예제 #2
0
 def test_deve_buscar_etfs_apenas_uma_vez_na_b3(self, busca_etfs_na_b3):
     self.__reset_etfs()
     busca_etfs_na_b3.return_value = {'BOVA', 'DIVO'}
     assert e_tipo_etf('BOVA11')
     assert e_tipo_etf('BOVA11')
     assert e_tipo_etf('DIVO11')
     # Como tem cachier pode ter resultados sem executar sem nenhuma chamada do metodo....
     assert busca_etfs_na_b3.call_count <= 1
예제 #3
0
 def test_crawler(self):
     self.__reset_etfs()
     assert e_tipo_etf('BOVA11')
     assert e_tipo_etf('bova11')
     assert e_tipo_etf('DIVO11')
     assert e_tipo_etf('ISUS11')
     assert e_tipo_etf('SMAC11')
     assert e_tipo_etf('SPXI11')
     assert not e_tipo_etf('ITSA4')
     assert not e_tipo_etf('VRTA11')
     assert not e_tipo_etf('invalid')
예제 #4
0
def tipo_ticker(ticker):
    if ticker in __cache__:
        return __cache__[ticker]
    else:
        if eh_tipo_fii(ticker):
            __cache__[ticker] = TipoTicker.FII
            return TipoTicker.FII

        if e_tipo_etf(ticker):
            __cache__[ticker] = TipoTicker.ETF
            return TipoTicker.ETF

        try:
            busca_preco_atual(ticker)
            __cache__[ticker] = TipoTicker.ACAO
            return TipoTicker.ACAO
        except:
            pass

        from src.crawler_advfn import CrawlerAdvfn
        crawler_advfn = CrawlerAdvfn()

        if crawler_advfn.busca_tipo_ticker(ticker) == TipoTicker.ACAO:
            return TipoTicker.ACAO

        if crawler_advfn.busca_tipo_ticker(ticker) == TipoTicker.OPCAO:
            return TipoTicker.OPCAO

        if crawler_advfn.busca_tipo_ticker(ticker) == TipoTicker.FUTURO:
            return TipoTicker.FUTURO

        return None
예제 #5
0
def tipo_ticker(ticker):

    if eh_tipo_fii(ticker):
        return TipoTicker.FII

    if e_tipo_etf(ticker):
        return TipoTicker.ETF

    try:
        busca_preco_atual(ticker)
        return TipoTicker.ACAO
    except:
        pass

    from src.crawler_advfn import advfn_tipo_ticker
    return advfn_tipo_ticker(ticker)
예제 #6
0
def tipo_ticker(ticker):
    tp = ticker_tipo(ticker)
    if tp in TipoTicker.__dict__:
        return TipoTicker[tp]

    if eh_tipo_fii(ticker):
        return TipoTicker.FII

    if e_tipo_etf(ticker):
        return TipoTicker.ETF

    try:
        busca_preco_atual(ticker)
        return TipoTicker.ACAO
    except:
        pass

    from src.crawler_advfn import advfn_tipo_ticker

    return advfn_tipo_ticker(ticker)