Ejemplo n.º 1
0
class BalanceSheetAssembler():
    def __init__(self):
        self.xbrl_assembler = XbrlBalanceSheetAssembler()
        self.legacy_assembler = LegacyBalanceSheetAssembler()
        # IFRS are available after year 2013. Legacy are available before year 2013. 
        self.splitted_date = datetime.date(2013, 1, 1)

    def assemble(self, param):
        if param['date'] >= self.splitted_date:
            return self.xbrl_assembler.assemble(param)
        else:
            return self.legacy_assembler.assemble(param)
class LegacyBalanceSheetAssemblerTest(unittest.TestCase):
    def setUp(self):
        self.assembler = LegacyBalanceSheetAssembler()
        self.file_utils = FileUtils()

    def tearDown(self):
        self.assembler = None
        self.file_utils = None

    def test_assemble_2330(self):
        # online: http://mops.twse.com.tw/mops/web/ajax_t05st33?encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&TYPEK=all&isnew=false&co_id=2330&year=99&season=03
        param = {
            'content' : self.file_utils.read_file('./stockcat/tests/unit/data/legacy_balance_sheet/2330/2010/03.html'),
            'stock_symbol' : '2330',
            'date' : datetime.date(2010, 9, 30), 
        }
        dao = self.assembler.assemble(param)
        
        column_name_list = dao.get_column_name_list()
        row_list = dao.get_row_list()
        
        self.assertEqual(column_name_list, [u'會計科目', datetime.date(2010, 9, 30), datetime.date(2009, 9, 30)])
        self.assertEqual(row_list[0], [u'資產'])
        self.assertEqual(row_list[1], [u'流動資產'])
        self.assertEqual(row_list[2], [u'現金及約當現金', 132268758, 156935077])
        self.assertEqual(row_list[6], [u'應收帳款淨額', 47370155, 35879778])
        self.assertEqual(row_list[10], [u'存 貨', 26663415, 19176052])
        self.assertEqual(row_list[12], [u'流動資產', 246637178, 244240939])
        self.assertEqual(row_list[13], [u'基金及投資'])
        self.assertEqual(row_list[19], [u'基金及投資', 39784245, 38553304])
        self.assertEqual(row_list[30], [u'固定資產淨額', 349179208, 236816024])
        self.assertEqual(row_list[40], [u'資產總計', 667552049, 541897118])
        self.assertEqual(row_list[41], [u'負債及股東權益'])
        self.assertEqual(row_list[42], [u'負債'])
        self.assertEqual(row_list[43], [u'流動負債'])
        self.assertEqual(row_list[53], [u'流動負債', 109235939, 55008722])
        self.assertEqual(row_list[54], [u'長期負債'])
        self.assertEqual(row_list[58], [u'長期負債', 12397877, 14967865])
        self.assertEqual(row_list[65], [u'負債總計', 126647972, 75270447])
        self.assertEqual(row_list[66], [u'股東權益'])
        self.assertEqual(row_list[67], [u'股本'])
        self.assertEqual(row_list[68], [u'普通股股本', 259073440, 259006623])
        self.assertEqual(row_list[69], [u'資本公積'])
        self.assertEqual(row_list[70], [u'資本公積合計', 55634070, 55439919])
        self.assertEqual(row_list[71], [u'保留盈餘'])
        self.assertEqual(row_list[75], [u'保留盈餘合計', 225059122, 149216633])
        self.assertEqual(row_list[81], [u'股東權益總計', 540904077, 466626671])
 def setUp(self):
     self.assembler = LegacyBalanceSheetAssembler()
     self.file_utils = FileUtils()
Ejemplo n.º 4
0
 def __init__(self):
     self.xbrl_assembler = XbrlBalanceSheetAssembler()
     self.legacy_assembler = LegacyBalanceSheetAssembler()
     # IFRS are available after year 2013. Legacy are available before year 2013. 
     self.splitted_date = datetime.date(2013, 1, 1)