def test_filters_data_before_2010(self, mock_orcado, mock_empenhado):
        mock_orcado.return_value = 'mock_o'
        mock_empenhado.return_value = 'mock_e'

        # not expected
        mommy.make(
            Execucao,
            year=date(2009, 1, 1))

        exec_2010 = mommy.make(
            Execucao,
            year=date(2010, 1, 1))
        execucoes = Execucao.objects.all()

        serializer = GeologiaSerializer(execucoes)
        ret = serializer.prepare_subgrupo_data()

        expected = {
            'orcado': ['mock_o'],
            'empenhado': ['mock_e'],
        }

        assert expected == ret

        assert 1 == mock_orcado.call_count
        assert [exec_2010] == list(mock_orcado.call_args[0][0])

        assert 1 == mock_empenhado.call_count
        assert [exec_2010] == list(mock_empenhado.call_args[0][0])
    def test_prepare_subgrupo_data(self, mock_orcado, mock_empenhado):
        mock_orcado.return_value = 'mock_o'
        mock_empenhado.return_value = 'mock_e'

        execs_2017 = mommy.make(
            Execucao,
            year=date(2017, 1, 1),
            _quantity=2)
        execs_2018 = mommy.make(
            Execucao,
            year=date(2018, 1, 1),
            _quantity=2)
        execucoes = Execucao.objects.all()

        serializer = GeologiaSerializer(execucoes)
        ret = serializer.prepare_subgrupo_data()

        expected = {
            'orcado': ['mock_o', 'mock_o'],
            'empenhado': ['mock_e', 'mock_e'],
        }

        assert expected == ret

        execs = [execs_2017, execs_2018]
        for exec_year, call in zip(execs, mock_orcado.mock_calls):
            assert set(exec_year) == set(call[1][0])
        for exec_year, call in zip(execs, mock_empenhado.mock_calls):
            assert set(exec_year) == set(call[1][0])