def test_serializes_camadas_chart_data(self):
        gnd1 = mommy.make(GndGeologia, desc='gnd1')
        gnd2 = mommy.make(GndGeologia, desc='gnd2')
        mommy.make(Execucao, year=date(2017, 1, 1), gnd_geologia=gnd1,
                   orcado_atualizado=100, empenhado_liquido=5, _quantity=2)
        mommy.make(Execucao, year=date(2017, 1, 1), gnd_geologia=gnd2,
                   orcado_atualizado=150, empenhado_liquido=15, _quantity=2)

        mommy.make(Execucao, year=date(2018, 1, 1), gnd_geologia=gnd1,
                   orcado_atualizado=10, empenhado_liquido=0.5, _quantity=2)
        mommy.make(Execucao, year=date(2018, 1, 1), gnd_geologia=gnd2,
                   orcado_atualizado=15, empenhado_liquido=2, _quantity=2)

        expected = [
            {
                "ano": 2017,
                "gnd": 'gnd1',
                "orcado": Decimal(200),
                "orcado_total": Decimal(500),
                "orcado_percentual": Decimal('0.4'),
                "empenhado": Decimal(10),
                "empenhado_total": Decimal(40),
                "empenhado_percentual": Decimal('0.25'),
            },
            {
                "ano": 2017,
                "gnd": 'gnd2',
                "orcado": Decimal(300),
                "orcado_total": Decimal(500),
                "orcado_percentual": Decimal('0.6'),
                "empenhado": Decimal(30),
                "empenhado_total": Decimal(40),
                "empenhado_percentual": Decimal('0.75'),
            },
            {
                "ano": 2018,
                "gnd": 'gnd1',
                "orcado": Decimal(20),
                "orcado_total": Decimal(50),
                "orcado_percentual": Decimal('0.4'),
                "empenhado": Decimal(1),
                "empenhado_total": Decimal(5),
                "empenhado_percentual": Decimal('0.2'),
            },
            {
                "ano": 2018,
                "gnd": 'gnd2',
                "orcado": Decimal(30),
                "orcado_total": Decimal(50),
                "orcado_percentual": Decimal('0.6'),
                "empenhado": Decimal(4),
                "empenhado_total": Decimal(5),
                "empenhado_percentual": Decimal('0.8'),
            },
        ]

        execucoes = Execucao.objects.all()
        serializer = GeologiaDownloadSerializer(execucoes, 'camadas')

        assert expected == serializer.data
Пример #2
0
    def test_deflator_is_applied_to_camadas_chart_data(self, deflators):
        gnd1 = mommy.make(GndGeologia, desc='gnd1')
        gnd2 = mommy.make(GndGeologia, desc='gnd2')
        e1 = mommy.make(Execucao,
                        year=date(2017, 1, 1),
                        gnd_geologia=gnd1,
                        orcado_atualizado=100,
                        empenhado_liquido=5)
        e2 = mommy.make(Execucao,
                        year=date(2017, 1, 1),
                        gnd_geologia=gnd2,
                        orcado_atualizado=200,
                        empenhado_liquido=10)

        deflator = Deflator.objects.get(year__year=2017)

        orcado_1 = e1.orcado_atualizado / deflator.index_number
        empenhado_1 = e1.empenhado_liquido / deflator.index_number
        orcado_2 = e2.orcado_atualizado / deflator.index_number
        empenhado_2 = e2.empenhado_liquido / deflator.index_number

        orcado_total = orcado_1 + orcado_2
        orcado_percentual_1 = orcado_1 / orcado_total
        orcado_percentual_2 = orcado_2 / orcado_total

        empenhado_total = empenhado_1 + empenhado_2
        empenhado_percentual_1 = empenhado_1 / empenhado_total
        empenhado_percentual_2 = empenhado_2 / empenhado_total

        expected = [
            {
                "ano": 2017,
                "gnd": 'gnd1',
                "orcado": orcado_1,
                "orcado_total": orcado_total,
                "orcado_percentual": orcado_percentual_1,
                "empenhado": empenhado_1,
                "empenhado_total": empenhado_total,
                "empenhado_percentual": empenhado_percentual_1,
            },
            {
                "ano": 2017,
                "gnd": 'gnd2',
                "orcado": orcado_2,
                "orcado_total": orcado_total,
                "orcado_percentual": orcado_percentual_2,
                "empenhado": empenhado_2,
                "empenhado_total": empenhado_total,
                "empenhado_percentual": empenhado_percentual_2,
            },
        ]
        execucoes = Execucao.objects.all()
        serializer = GeologiaDownloadSerializer(execucoes, 'camadas')

        assert expected == serializer.data
Пример #3
0
    def prepare_expected_data(self, chart, subfuncao_id=None):
        factory = RequestFactory()

        execucoes = Execucao.objects.filter(is_minimo_legal=False,
                                            orgao__id=SME_ORGAO_ID)
        if subfuncao_id:
            execucoes = execucoes.filter(subfuncao_id=subfuncao_id)

        if chart == 'subgrupo':
            execucoes = execucoes.filter(year__year__gte=2010,
                                         subgrupo__isnull=False)

        request = factory.get(self.base_url(chart))

        return GeologiaDownloadSerializer(execucoes,
                                          chart=chart,
                                          many=True,
                                          context={
                                              'request': request
                                          }).data
    def test_serializes_subgrupo_chart_data(self):
        subgrupo1 = mommy.make(Subgrupo, desc='subgrupo1')
        subgrupo2 = mommy.make(Subgrupo, desc='subgrupo2')
        gnd1 = mommy.make(GndGeologia, desc='gnd1')
        gnd2 = mommy.make(GndGeologia, desc='gnd2')

        mommy.make(Execucao, year=date(2017, 1, 1), subgrupo=subgrupo1,
                   gnd_geologia=gnd1, orcado_atualizado=100,
                   empenhado_liquido=5, _quantity=2)
        mommy.make(Execucao, year=date(2017, 1, 1), subgrupo=subgrupo1,
                   gnd_geologia=gnd2, orcado_atualizado=150,
                   empenhado_liquido=15, _quantity=2)

        mommy.make(Execucao, year=date(2017, 1, 1), subgrupo=subgrupo2,
                   gnd_geologia=gnd1, orcado_atualizado=5,
                   empenhado_liquido=1, _quantity=2)
        mommy.make(Execucao, year=date(2017, 1, 1), subgrupo=subgrupo2,
                   gnd_geologia=gnd2, orcado_atualizado=15,
                   empenhado_liquido=3, _quantity=2)

        mommy.make(Execucao, year=date(2018, 1, 1), subgrupo=subgrupo1,
                   gnd_geologia=gnd1, orcado_atualizado=10,
                   empenhado_liquido=0.5, _quantity=2)
        mommy.make(Execucao, year=date(2018, 1, 1), subgrupo=subgrupo1,
                   gnd_geologia=gnd2, orcado_atualizado=15,
                   empenhado_liquido=2, _quantity=2)

        expected = [
            {
                "ano": 2017,
                "gnd": 'gnd1',
                "subgrupo": 'subgrupo1',
                "orcado": Decimal(200),
                "orcado_total": Decimal(500),
                "orcado_percentual": Decimal('0.4'),
                "empenhado": Decimal(10),
                "empenhado_total": Decimal(40),
                "empenhado_percentual": Decimal('0.25'),
            },
            {
                "ano": 2017,
                "gnd": 'gnd2',
                "subgrupo": 'subgrupo1',
                "orcado": Decimal(300),
                "orcado_total": Decimal(500),
                "orcado_percentual": Decimal('0.6'),
                "empenhado": Decimal(30),
                "empenhado_total": Decimal(40),
                "empenhado_percentual": Decimal('0.75'),
            },
            {
                "ano": 2017,
                "gnd": 'gnd1',
                "subgrupo": 'subgrupo2',
                "orcado": Decimal(10),
                "orcado_total": Decimal(40),
                "orcado_percentual": Decimal('0.25'),
                "empenhado": Decimal(2),
                "empenhado_total": Decimal(8),
                "empenhado_percentual": Decimal('0.25'),
            },
            {
                "ano": 2017,
                "gnd": 'gnd2',
                "subgrupo": 'subgrupo2',
                "orcado": Decimal(30),
                "orcado_total": Decimal(40),
                "orcado_percentual": Decimal('0.75'),
                "empenhado": Decimal(6),
                "empenhado_total": Decimal(8),
                "empenhado_percentual": Decimal('0.75'),
            },
            {
                "ano": 2018,
                "gnd": 'gnd1',
                "subgrupo": 'subgrupo1',
                "orcado": Decimal(20),
                "orcado_total": Decimal(50),
                "orcado_percentual": Decimal('0.4'),
                "empenhado": Decimal(1),
                "empenhado_total": Decimal(5),
                "empenhado_percentual": Decimal('0.2'),
            },
            {
                "ano": 2018,
                "gnd": 'gnd2',
                "subgrupo": 'subgrupo1',
                "orcado": Decimal(30),
                "orcado_total": Decimal(50),
                "orcado_percentual": Decimal('0.6'),
                "empenhado": Decimal(4),
                "empenhado_total": Decimal(5),
                "empenhado_percentual": Decimal('0.8'),
            },
        ]

        execucoes = Execucao.objects.all()
        serializer = GeologiaDownloadSerializer(execucoes, 'subgrupo')

        assert len(expected) == len(serializer.data)
        for item in expected:
            assert item in serializer.data