def report_for(self, data_set): return hr.report_builder(data_set=data_set, row_header_label=("Marketing",), row_key=lambda x: (x[0],), column_key=lambda x:x[1], value_key=lambda x:x[2], header_converter=lambda i: calendar.month_abbr[i])
def test_merge_reports(self): data_set1 = [ ['internet', 1, 4], ['internet', 2, 5], ['tv' , 1, 6], ['tv' , 2, 7], ] report1 = self.report_for(data_set1) data_set2 = [ ['internet', 'Year to Date', 500], ['tv' , 'Year to Date', 600], ] report2 = hr.report_builder(data_set=data_set2, row_header_label=("Marketing",), row_key=lambda x: (x[0],), column_key=lambda x:x[1], value_key=lambda x:x[2]) report3 = report1 + report2 expected_report = ( ('Marketing', "Jan", "Feb", "Year to Date" ), ('internet' , 4, 5, 500 ), ('tv' , 6, 7, 600 ) ) self.assertEquals(expected_report, report3.format())
def test_transpose_tuple(self): data_set = ( ('internet' , 'apple' , 1 , 7 ), ('internet' , 'linux' , 1 , 1 ), ('internet' , 'ms' , 2 , 3 ), ('tv' , 'jvc' , 2 , 0 ), ('tv' , 'sony' , 2 , 8 ), ('tv' , 'toshiba' , 1 , 3 ), ) expected_report = ( ('Marketing', "Specialty", "Jan", "Feb"), ('internet' , 'apple' , 7 , 0 ), ('internet' , 'linux' , 1 , 0 ), ('internet' , 'ms' , 0 , 3 ), ('tv' , 'jvc' , 0 , 0 ), ('tv' , 'sony' , 0 , 8 ), ('tv' , 'toshiba' , 3 , 0 ), ) report = hr.report_builder(data_set=data_set, row_header_label=("Marketing", "Specialty"), row_key=lambda x:(x[0], x[1]), column_key=lambda x:x[2], value_key=lambda x:x[3], header_converter=lambda i: calendar.month_abbr[i]) self.assertEquals(expected_report, report.format())
def test_merge_reports(self): data_set1 = [["internet", 1, 4], ["internet", 2, 5], ["tv", 1, 6], ["tv", 2, 7]] report1 = self.report_for(data_set1) data_set2 = [["internet", "Year to Date", 500], ["test", "Year to Date", 550], ["tv", "Year to Date", 600]] report2 = hr.report_builder( data_set=data_set2, row_header_label=("Marketing",), row_key=lambda x: (x[0],), column_key=lambda x: x[1], value_key=lambda x: x[2], ) report3 = report1 + report2 expected_report = ( ("Marketing", "Jan", "Feb", "Year to Date"), ("internet", 4, 5, 500), ("test", 0, 0, 550), ("tv", 6, 7, 600), ) self.assertEquals(expected_report, report3.format())
def test_sum_groups(self): data_set = [ ['internet', 'apple' , 1, 4], ['internet', 'ms' , 1, 5], ['internet', 'apple' , 2, 7], ['internet', 'linux' , 2, 1], ['internet', 'ms' , 2, 3], ['tv' , 'sony' , 1, 2], ['tv' , 'toshiba', 1, 7], ['tv' , 'jvc' , 1, 4], ['tv' , 'sony' , 2, 8], ['tv' , 'toshiba', 2, 3], ] report = hr.report_builder(data_set=data_set, row_header_label=("Marketing", "Specialty"), row_key=lambda x:(x[0], x[1]), column_key=lambda x:x[2], value_key=lambda x:x[3], header_converter=lambda i: calendar.month_abbr[i]) report = report.sum_groups(group=lambda x: x[0], sum_label=('','Total')) expected_report = ( ('Marketing', "Specialty", "Jan", "Feb"), ('internet' , 'apple' , 4 , 7 ), ('internet' , 'linux' , 0 , 1 ), ('internet' , 'ms' , 5 , 3 ), ('' , 'Total' , 9 , 11 ), ('tv' , 'jvc' , 4 , 0 ), ('tv' , 'sony' , 2 , 8 ), ('tv' , 'toshiba' , 7 , 3 ), ('' , 'Total' , 13 , 11 ), ) self.assertEquals(expected_report, report.format())