コード例 #1
0
class OperatingRevenueSummaryFeedBuilder:
    def __init__(self):
        self.date_utils = DateUtils()

    def build(self, dao):
        tuple_feed = self.__build_tuple(dao)
        return OperatingRevenueFeed(tuple_feed)

    def __build_tuple(self, dao):
        feed = []
        stmt_date = self.date_utils.get_last_date_of_month(dao.get_stmt_date())
        release_date = dao.get_release_date()
        for row in dao.get_row_list():
            stock_symbol = row[0]
            this_month_value = row[2]
            last_month_value = row[3]
            entry = {
                "release_date": release_date,
                "stock_symbol": stock_symbol,
                "stmt_date": stmt_date,
                "account": u"當月營收",
                "account_order": 1,
                "value": this_month_value,
            }
            feed.append(entry)
            entry = {
                "release_date": release_date,
                "stock_symbol": stock_symbol,
                "stmt_date": self.date_utils.get_last_date_of_prev_month(stmt_date),
                "account": u"上月營收",
                "account_order": 2,
                "value": last_month_value,
            }
            feed.append(entry)
        return tuple(feed)
コード例 #2
0
ファイル: test_date_utils.py プロジェクト: Meng-Gen/StockCat
class DateUtilsTest(unittest.TestCase):
    def setUp(self):
        self.date_utils = DateUtils()

    def tearDown(self):
        self.date_utils = None

    def test_get_last_date_of_month(self):
        actual = self.date_utils.get_last_date_of_month(datetime.date(2010, 1, 1))
        expected = datetime.date(2010, 1, 31)
        self.assertEqual(actual, expected)

    def test_get_last_date_of_prev_month(self):
        actual = self.date_utils.get_last_date_of_prev_month(datetime.date(2010, 1, 1))
        expected = datetime.date(2009, 12, 31)
        self.assertEqual(actual, expected)

    def test_get_last_date_of_quarter(self):
        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 1, 1))
        expected = datetime.date(2010, 3, 31)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 3, 31))
        expected = datetime.date(2010, 3, 31)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 4, 1))
        expected = datetime.date(2010, 6, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 6, 30))
        expected = datetime.date(2010, 6, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 7, 1))
        expected = datetime.date(2010, 9, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 9, 30))
        expected = datetime.date(2010, 9, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 10, 1))
        expected = datetime.date(2010, 12, 31)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_quarter(datetime.date(2010, 12, 31))
        expected = datetime.date(2010, 12, 31)
        self.assertEqual(actual, expected)

    def test_get_last_date_of_next_quarter(self):
        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 1, 1))
        expected = datetime.date(2010, 6, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 3, 31))
        expected = datetime.date(2010, 6, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 4, 1))
        expected = datetime.date(2010, 9, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 6, 30))
        expected = datetime.date(2010, 9, 30)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 7, 1))
        expected = datetime.date(2010, 12, 31)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 9, 30))
        expected = datetime.date(2010, 12, 31)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 10, 1))
        expected = datetime.date(2011, 3, 31)
        self.assertEqual(actual, expected)

        actual = self.date_utils.get_last_date_of_next_quarter(datetime.date(2010, 12, 31))
        expected = datetime.date(2011, 3, 31)
        self.assertEqual(actual, expected)

    def test_range_date_by_month(self):
        actual = self.date_utils.range_date_by_month(datetime.date(2010, 9, 1), datetime.date(2011, 3, 15))
        expected = [
                datetime.date(2010, 9, 30), 
                datetime.date(2010, 10, 31), 
                datetime.date(2010, 11, 30), 
                datetime.date(2010, 12, 31), 
                datetime.date(2011, 1, 31), 
                datetime.date(2011, 2, 28), 
                datetime.date(2011, 3, 31), 
        ]
        self.assertEqual(actual, expected)

    def test_range_date_by_quarter(self):
        actual = self.date_utils.range_date_by_quarter(datetime.date(2010, 9, 1), datetime.date(2011, 3, 15))
        expected = [
                datetime.date(2010, 9, 30), 
                datetime.date(2010, 12, 31), 
                datetime.date(2011, 3, 31), 
        ]
        self.assertEqual(actual, expected)