def optimize(date: str = typer.Argument(..., help="YYYY-MM-DD")): """Optimize portfolio.""" port = load_from_yaml(date) opt = Optimizer(port) print(opt.portfolio) print(opt.metrics) print(opt) div_status.new_dividends(tuple(port.index[:-2]))
def optimize(date: str = typer.Argument(..., help="YYYY-MM-DD"), for_sell: int = 1) -> None: """Optimize portfolio.""" port = load_from_yaml(date) if config.OPTIMIZER == "resample": opt = optimizer_resample.Optimizer(port, for_sell=for_sell) else: opt = optimizer_hmean.Optimizer(port) LOGGER.info(opt.portfolio) LOGGER.info(opt.metrics) LOGGER.info(opt) div_status.new_dividends(tuple(port.index[:-2]))
def test_new_dividends_no_output(mocker, caplog): """Не печатается результат, если по запрашиваемым тикерам нет обновления.""" mocker.patch.object(div_status, "_new_div_all", return_value=SMART_LAB_DF) with caplog.at_level(logging.INFO): assert not div_status.new_dividends(("GAZP", )) assert not caplog.records
def test_new_dividends_no_output(mocker, capsys): """Не печатается результат, если по запрашиваемым тикерам нет обновления.""" mocker.patch.object(div_status, "_new_div_all", return_value=SMART_LAB_DF) assert not div_status.new_dividends(("GAZP", )) captured = capsys.readouterr() assert not captured.out
def test_new_dividends(mocker, capsys): """Различные варианты включения и не включения в статус.""" mocker.patch.object(div_status, "_new_div_all", return_value=SMART_LAB_DF) mocker.patch.object(div, "dividends", side_effect=[PLZL_DF, T_DF, KZOS_DF, TTLK_DF]) assert div_status.new_dividends(("TTLK", "T-RM", "KZOS", "PLZL")) == {"PLZL", "KZOS"} captured = capsys.readouterr() assert "ДАННЫЕ ПО ДИВИДЕНДАМ ТРЕБУЮТ ОБНОВЛЕНИЯ" in captured.out
def test_new_dividends(mocker, caplog): """Различные варианты включения и не включения в статус.""" mocker.patch.object(div_status, "_new_div_all", return_value=SMART_LAB_DF) mocker.patch.object(div, "dividends", side_effect=[PLZL_DF, T_DF, KZOS_DF, TTLK_DF]) with caplog.at_level(logging.INFO): assert div_status.new_dividends( ("TTLK", "T-RM", "KZOS", "PLZL")) == {"PLZL", "KZOS"} assert "ДАННЫЕ ПО ДИВИДЕНДАМ ТРЕБУЮТ ОБНОВЛЕНИЯ" in caplog.records[ 0].msg