import logging import unittest from py_jftech import autowired, parse_date, to_str from api import PortfoliosBuilder, PortfoliosType, PortfoliosRisk, PortfoliosHolder, RoboReportor class PortfoliosTest(unittest.TestCase): logger = logging.getLogger(__name__) @autowired(names={'builder': 'poem'}) def test_poem_build_portfolio(self, builder: PortfoliosBuilder = None): result, detail = builder.build_portfolio(parse_date('2008-01-21'), PortfoliosType.NORMAL) self.logger.info("portfolios: ") for risk, portfolio in result.items(): self.logger.info(risk.name) self.logger.info(portfolio) self.logger.info(detail[risk]) @autowired(names={'builder': 'poem'}) def test_poem_get_portfolio(self, builder: PortfoliosBuilder = None): portfolio = builder.get_portfolios(parse_date('2022-11-07'), PortfoliosRisk.FT9) self.logger.info(portfolio) @autowired(names={'hold': 'next-re'}) def test_has_hold(self, hold: PortfoliosHolder = None): self.logger.info(hold.has_hold(PortfoliosRisk.FT3)) @autowired(names={'hold': 'next-re'}) def test_build_hold(self, hold: PortfoliosHolder = None): hold.build_hold_portfolio(parse_date('2016-01-01'), PortfoliosRisk.FT9) pass @autowired(names={'reportor': 'hold-report'}) def test_hold_report(self, reportor: RoboReportor = None): report = reportor.load_report() self.logger.info(to_str(report)) if __name__ == '__main__': unittest.main()