Ejemplo n.º 1
0
class GroupByResultCalculationTest(unittest.TestCase):
    '''Test calculation of GroupByResult'''
    def setUp(self):
        self.groupby_result = GroupByResult({
            1: 100,
            2: 300,
            4: 400,
        })

        self.nested_groupby_result = GroupByResult({
            1:
            GroupByResult({
                'a': 1,
                'b': 2,
                'c': 3
            }),
            2:
            GroupByResult({
                1: 1,
                2: 2
            }),
            3:
            GroupByResult({
                'PASSED': 10,
                'WAIVED': 20,
                'FAILED': 30,
                'PAUSED': 40
            }),
        })

    def _sample_total(self):
        return sum(count for key, count in self.groupby_result.items())

    def _sample_nested_total(self):
        total = 0
        for key, nested_result in self.nested_groupby_result.items():
            for n, count in nested_result.items():
                total += count
        return total

    def test_total(self):
        total = self.groupby_result.total
        self.assertEqual(total, self._sample_total())

    def test_nested_total(self):
        total = self.nested_groupby_result.total
        self.assertEqual(total, self._sample_nested_total())