Ejemplo n.º 1
0
    def test_get_timeseries_queryset(self):
        make(Execucao,
             orgao__id=SME_ORGAO_ID,
             subfuncao__id=1,
             fonte_grupo__id=1,
             year=date(2017, 1, 1),
             _quantity=2)

        # not expected
        make(Execucao,
             orgao__id=SME_ORGAO_ID,
             subfuncao__id=1,
             fonte_grupo__id=1,
             year=date(2017, 1, 1),
             is_minimo_legal=True,
             _quantity=2)
        make(Execucao,
             orgao__id=1,
             subfuncao__id=1,
             fonte_grupo__id=1,
             year=date(2017, 1, 1),
             is_minimo_legal=True,
             _quantity=2)

        execucoes = Execucao.objects \
            .filter(orgao_id=SME_ORGAO_ID, is_minimo_legal=False) \
            .order_by('year')
        expected = TimeseriesSerializer(execucoes, deflate=False).data
        response = self.get(year=2018)
        assert expected == response.data['timeseries']
        assert 2018 == response.data['year']

        response = self.get()
        assert expected == response.data['timeseries']
        assert 2018 == response.data['year']
Ejemplo n.º 2
0
    def list(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())
        serializer = self.get_serializer(queryset, many=True)

        if queryset:
            breadcrumb = self.create_breadcrumb(queryset)
        else:
            breadcrumb = []

        deflate = bool(self.request.GET.get('deflate', None))
        tseries_qs = self.get_timeseries_queryset().order_by('year')
        tseries_serializer = TimeseriesSerializer(tseries_qs, deflate=deflate)

        return Response({
            'deflate':
            deflate,
            'year':
            self.year,
            'breadcrumb':
            breadcrumb,
            'execucoes':
            serializer.data,
            'timeseries':
            tseries_serializer.data,
            'tecnico':
            self.tecnico,
            'root_url':
            self.get_root_url(),
            'fontes_de_recurso':
            self.get_fonte_grupo_filters(),
            'download_full_csv_url':
            self.get_download_csv_url(),
            'download_filtered_csv_url':
            self.get_download_csv_url(filtered=True),
        })
Ejemplo n.º 3
0
    def test_serializes_normal_data_when_deflator_doesnt_exist(self):
        mommy.make(Execucao,
                   orcado_atualizado=cycle([10, 20, 30]),
                   empenhado_liquido=cycle([1, 2, 3]),
                   year=date(2016, 1, 1),
                   _quantity=3)

        execucoes = Execucao.objects.all()

        expected = {
            '2016': {
                "orcado": 60,
                "empenhado": 6,
            },
            '2017': {
                "orcado": 300 / 0.2,
                "empenhado": 30 / 0.2,
            },
            '2018': {
                "orcado": 60 / 0.5,
                "empenhado": 6 / 0.5,
            },
        }

        serializer = TimeseriesSerializer(execucoes, deflate=True)

        assert expected == serializer.data
Ejemplo n.º 4
0
    def test_serializes_deflated_data(self):
        execucoes = Execucao.objects.all()

        expected = {
            '2017': {
                "orcado": 300 / 0.2,
                "empenhado": 30 / 0.2,
            },
            '2018': {
                "orcado": 60 / 0.5,
                "empenhado": 6 / 0.5,
            },
        }

        serializer = TimeseriesSerializer(execucoes, deflate=True)

        assert expected == serializer.data
Ejemplo n.º 5
0
    def test_serializes_data_correctly(self):
        execucoes = Execucao.objects.all()

        expected = {
            '2017': {
                "orcado": 300,
                "empenhado": 30,
            },
            '2018': {
                "orcado": 60,
                "empenhado": 6,
            },
        }

        serializer = TimeseriesSerializer(execucoes)

        assert expected == serializer.data