コード例 #1
0
 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])
コード例 #2
0
ファイル: unit_tests.py プロジェクト: ccollins/horble_reports
 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())
コード例 #3
0
ファイル: unit_tests.py プロジェクト: ccollins/horble_reports
 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())
コード例 #4
0
    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())
コード例 #5
0
ファイル: unit_tests.py プロジェクト: ccollins/horble_reports
    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())