def test_get_trading_days_with_two_holidays(self, mock_tushare):
        start_day = datetime.datetime(2015, 8, 18)

        data = [
            ["2015-08-07", 10.0, 11.0, 10.5, 10.0],
            ["2015-08-10", 10.0, 11.0, 10.5, 10.0],
            ["2015-08-11", 10.0, 11.0, 10.5, 10.0],
            ["2015-08-12", 10.0, 11.0, 10.5, 10.0],
            ["2015-08-13", 10.0, 11.0, 10.5, 10.0],
            ["2015-08-14", 10.0, 11.0, 10.5, 10.0],
            ["2015-08-17", 10.0, 11.0, 10.5, 10.0],
        ]
        COLUMNS = ["date", "open", "high", "close", "low"]
        df = pd.DataFrame(data, columns=COLUMNS)
        df = df.set_index("date")

        mock_tushare.get_hist_data.return_value = df

        trading_days = get_trading_days(start_day, 7)

        self.assertEqual(7, len(trading_days))

        self.assertEqual(2015, trading_days[0].year)
        self.assertEqual(8, trading_days[0].month)
        self.assertEqual(7, trading_days[0].day)

        self.assertEqual(2015, trading_days[6].year)
        self.assertEqual(8, trading_days[6].month)
        self.assertEqual(17, trading_days[6].day)
    def test_get_trading_days_with_two_holidays(self, mock_tushare):
        start_day = datetime.datetime(2015, 8, 18)

        data = [['2015-08-07', 10.0, 11.0, 10.5, 10.0],
                ['2015-08-10', 10.0, 11.0, 10.5, 10.0],
                ['2015-08-11', 10.0, 11.0, 10.5, 10.0],
                ['2015-08-12', 10.0, 11.0, 10.5, 10.0],
                ['2015-08-13', 10.0, 11.0, 10.5, 10.0],
                ['2015-08-14', 10.0, 11.0, 10.5, 10.0],
                ['2015-08-17', 10.0, 11.0, 10.5, 10.0]]
        COLUMNS = ['date', 'open', 'high', 'close', 'low']
        df = pd.DataFrame(data, columns=COLUMNS)
        df = df.set_index('date')

        mock_tushare.get_hist_data.return_value = df

        trading_days = get_trading_days(start_day, 7)

        self.assertEqual(7, len(trading_days))

        self.assertEqual(2015, trading_days[0].year)
        self.assertEqual(8, trading_days[0].month)
        self.assertEqual(7, trading_days[0].day)

        self.assertEqual(2015, trading_days[6].year)
        self.assertEqual(8, trading_days[6].month)
        self.assertEqual(17, trading_days[6].day)
    def test_get_trading_days_with_one_holiday(self, mock_tushare):
        start_day = datetime.datetime(2015, 8, 10)

        data = [["2015-08-06", 10.0, 11.0, 10.5, 10.0], ["2015-08-07", 10.0, 11.0, 10.5, 10.0]]
        COLUMNS = ["date", "open", "high", "close", "low"]
        df = pd.DataFrame(data, columns=COLUMNS)
        df = df.set_index("date")

        mock_tushare.get_hist_data.return_value = df

        trading_days = get_trading_days(start_day, 2)

        self.assertEqual(2015, trading_days[0].year)
        self.assertEqual(8, trading_days[0].month)
        self.assertEqual(6, trading_days[0].day)

        self.assertEqual(2015, trading_days[1].year)
        self.assertEqual(8, trading_days[1].month)
        self.assertEqual(7, trading_days[1].day)
    def test_get_trading_days(self, mock_tushare):
        start_day = datetime.datetime(2015, 8, 8)

        data = [['2015-08-06', 10.0, 11.0, 10.5, 10.0],
                ['2015-08-07', 10.0, 11.0, 10.5, 10.0]]
        COLUMNS = ['date', 'open', 'high', 'close', 'low']
        df = pd.DataFrame(data, columns=COLUMNS)
        df = df.set_index('date')

        mock_tushare.get_hist_data.return_value = df

        trading_days = get_trading_days(start_day, 2)

        self.assertEqual(2015, trading_days[0].year)
        self.assertEqual(8, trading_days[0].month)
        self.assertEqual(6, trading_days[0].day)

        self.assertEqual(2015, trading_days[1].year)
        self.assertEqual(8, trading_days[1].month)
        self.assertEqual(7, trading_days[1].day)