def test_obter_parlamentares(self, mock_obterVereadores):
        mock_obterVereadores.return_value = [
            {
                'chave': '1',
                'nome': 'Fulano',
                'mandatos': [
                    {'fim': datetime(2020, 12, 31), 'partido': {'sigla': 'TESTE'}}
                ]
            },
            {
                'chave': '2',
                'nome': 'Fulana',
                'mandatos': [
                    {'fim': datetime(2020, 12, 31), 'partido': {'sigla': 'TESTE'}},
                    {'fim': datetime(2018, 12, 31)},
                ]
            },
            {
                'chave': '3',
                'nome': 'Joana',
                'mandatos': [
                    {'fim': datetime(2020, 12, 31), 'partido': {'sigla': 'TESTE'}},
                    {'fim': datetime(2018, 12, 31)},
                ]
            },
        ]

        actual = self.cmsp.obter_parlamentares()

        self.assertEqual(actual, [
            Parlamentar(**{'nome': 'Fulano', 'id': '1', 'partido': 'TESTE', 'uf': 'SP', 'cargo': 'SÃO PAULO', 'foto': 'https://www.99luca11.com/Users/usuario_sem_foto.png'}),
            Parlamentar(**{'nome': 'Fulana', 'id': '2', 'partido': 'TESTE', 'uf': 'SP', 'cargo': 'SÃO PAULO', 'foto': 'https://www.99luca11.com/Users/usuario_sem_foto.png'}),
            Parlamentar(**{'nome': 'Joana', 'id': '3', 'partido': 'TESTE', 'uf': 'SP', 'cargo': 'SÃO PAULO', 'foto': 'https://www.99luca11.com/Users/usuario_sem_foto.png'})
        ])
예제 #2
0
 def test_parlamentares_casa_sucesso(self, mock_obter_parlamentares):
     mock_obter_parlamentares.return_value = [
         Parlamentar(id='123', nome='ParlamentarTeste'),
         Parlamentar(id='12345', nome='Parlamentar2Teste')
     ]
     actual = self.app.get("/v1/parlamentares/BR2")
     actual_data = actual.data.decode('utf-8')
     self.assertEqual(actual.status_code, 200)
     self.assertIn("ParlamentarTeste", actual_data)
     self.assertIn("Parlamentar2Teste", actual_data)
     json.loads(actual_data)
예제 #3
0
    def test_buscar_por_parlamentar(self):
        parlamentar_1 = Parlamentar(id='1', cargo='BR1')
        parlamentar_2 = Parlamentar(id='2', cargo='BR1')
        parlamentar_3 = Parlamentar(id='1', cargo='BR2')
        relatorio_1 = Relatorio(parlamentar=parlamentar_1, data_inicial=datetime(2019, 1, 1)).save()
        relatorio_2 = Relatorio(parlamentar=parlamentar_2, data_inicial=datetime(2019, 1, 1)).save()
        relatorio_3 = Relatorio(parlamentar=parlamentar_3, data_inicial=datetime(2019, 1, 1)).save()
        relatorio_4 = Relatorio(parlamentar=parlamentar_1, data_inicial=datetime(2019, 1, 1)).save()
        relatorio_5 = Relatorio(parlamentar=parlamentar_3, data_inicial=datetime(2019, 1, 1)).save()
        relatorio_6 = Relatorio(parlamentar=parlamentar_2, data_inicial=datetime(2019, 1, 1)).save()

        actual = Relatorios().buscar_por_parlamentar('BR1', '1')
        expected = [relatorio_1.to_dict(), relatorio_4.to_dict()]

        self.assertEqual(len(actual), len(expected))
예제 #4
0
    def test_obter_relatorio_json_inexistente_por_periodos_diferentes(
        self,
        mock_model_selector
    ):
        parlamentar = Parlamentar(id='1', cargo='BR1')
        brasilia_tz = pytz.timezone('America/Sao_Paulo')
        relatorio_inicial = Relatorio(
            parlamentar=parlamentar,
            data_final=brasilia_tz.localize(datetime(2019, 6, 29)),
            data_inicial=brasilia_tz.localize(datetime(2019, 6, 15))
        ).save()
        relatorio_gerado = Relatorio(
            parlamentar=parlamentar,
            data_final=datetime(2019, 6, 29),
            data_inicial=datetime(2019, 6, 22)
        )
        class FakeModel:
            def obter_relatorio(self, *args, **kwargs):
                return relatorio_gerado
        mock_model_selector.return_value = FakeModel

        actual_response = Relatorios().obter_relatorio('1', '2019-06-29', 'BR1', periodo=7)
        actual_response['_id'] = 'id'
        relatorio_gerado.pk = 'id'

        self.assertEqual(mock_model_selector.call_count, 1)
        self.assertEqual(actual_response, relatorio_gerado.to_dict())
예제 #5
0
    def test_avaliacoes_de_parlamentar(self):
        parlamentar = Parlamentar(id='id', cargo='BR1')
        avaliacao1 = Avaliacoes(
            parlamentar=parlamentar,
            email='*****@*****.**',
            relatorioId='4c264b5e3a5efd576ecaf48e',
            avaliacao='-1',
            avaliado={'id': '1'}
        ).save()
        avaliacao2 = Avaliacoes(
            parlamentar=parlamentar,
            email='*****@*****.**',
            relatorioId='4c264b5e3a5efd576ecaf48e',
            avaliacao='2',
            avaliado={'id': '2'}
        ).save()

        actual = Avaliacao().avaliacoes('BR1', 'id', '*****@*****.**')

        self.assertEqual(actual[0], parlamentar)
        self.assertEqual(actual[1], {
            '2': [avaliacao2.to_mongo().to_dict()],
            '1': [],
            '-1': [avaliacao1.to_mongo().to_dict()],
            '-2': []
        })
        self.assertEqual(actual[2], 9)
예제 #6
0
def set_up_parlamentar():
    par = Parlamentar()
    par.nome = "ParlamentarTeste"
    par.foto = "url"
    par.id = "123"
    par.partido = "Partido"
    par.cargo = "BR1"
    par.uf = "ES"
    return par
예제 #7
0
    def test_obter_parlamentares(self):
        def fakeObterDeputados():
            yield [{
                'nome': 'CESAR DA SILVA',
                'id': '1',
                'siglaPartido': 'P1',
                'siglaUf': 'UF',
                'urlFoto': 'foto',
            }, {
                'nome': 'FULANO PESSOA',
                'id': '2',
                'siglaPartido': 'P2',
                'siglaUf': 'UF',
                'urlFoto': 'foto2',
            }]
            yield [{
                'nome': 'SICRANO PINTO',
                'id': '3',
                'siglaPartido': 'P1',
                'siglaUf': 'UF2',
                'urlFoto': 'foto3',
            }]

        expected = [
            Parlamentar(nome='CESAR DA SILVA',
                        id='1',
                        partido='P1',
                        uf='UF',
                        foto='foto',
                        cargo='BR1'),
            Parlamentar(nome='FULANO PESSOA',
                        id='2',
                        partido='P2',
                        uf='UF',
                        foto='foto2',
                        cargo='BR1'),
            Parlamentar(nome='SICRANO PINTO',
                        id='3',
                        partido='P1',
                        uf='UF2',
                        foto='foto3',
                        cargo='BR1')
        ]
        mock = Mocker(self.dep.dep)
        mock.add_response('obterTodosDeputados', fakeObterDeputados())
        actual_response = self.dep.obter_parlamentares()
        self.assertEqual(actual_response, expected)
예제 #8
0
    def test_send_push_notification_message_too_big_sucess(self, mock_urllib3):
        def assert_equal(actual, expected):
            self.assertEqual(actual, expected)

        class FakePoolManager:
            def __init__(self, *args, **kwargs):
                FakePoolManager.call_count = 0

            def request(self, method, url, headers, body):
                class responseFail():
                    status = 200
                    data = json.dumps({
                        'results': [{
                            'error': 'MessageTooBig'
                        }]
                    }).encode('utf-8')

                class responseSucess():
                    status = 200
                    data = json.dumps({
                        'results': [{
                            'id': '123'
                        }]
                    }).encode('utf-8')

                FakePoolManager.call_count += 1
                assert_equal(method, "POST")
                assert_equal(url, "https://fcm.googleapis.com/fcm/send")
                if 'reportsIds' in body.decode('utf-8'):
                    return responseSucess()
                return responseFail()

        data_inicial = datetime(2019, 10, 12)
        data_final = datetime(2019, 10, 19)
        parlamentar1 = Parlamentar(id='1', cargo='BR1', nome='AMANDA')
        relatorio1 = Relatorio(
            id="123",
            parlamentar=parlamentar1,
            data_final=data_final,
            data_inicial=data_inicial,
            proposicoes=[
                Proposicao(id="1"),
                Proposicao(id="2"),
                Proposicao(id="3"),
                Proposicao(id="4")
            ],
            eventos_presentes=[Evento(id="1"), Evento(id="2")],
            eventos_previstos=None,
            eventos_ausentes=[Evento(id="4"),
                              Evento(id="5"),
                              Evento(id="6")])

        mock_urllib3.side_effect = FakePoolManager

        result = send_push_notification("token", [relatorio1.to_dict()])

        self.assertTrue(mock_urllib3.called)
        self.assertEqual(2, mock_urllib3.side_effect.call_count)
        self.assertTrue(result)
예제 #9
0
    def test_obter_por_id(self):
        parlamentar = Parlamentar(id='id')
        relatorio = Relatorio(parlamentar=parlamentar, data_inicial='2019-01-01')
        relatorio.save()
        
        actual = Relatorios().obter_por_id(relatorio.pk)

        self.assertEqual(relatorio, actual)
예제 #10
0
    def test_minhas_avaliacoes(self):
        parlamentar = Parlamentar(id='id', cargo='BR1')
        avaliacao = Avaliacoes(parlamentar=parlamentar, email='*****@*****.**')
        avaliacao.save()

        actual = Avaliacao().minhas_avaliacoes('BR1', 'id', '*****@*****.**')

        self.assertEqual(actual.first(), avaliacao)
예제 #11
0
    def test_avaliacoes_de_parlamentar_sem_avaliacoes(self):
        parlamentar = Parlamentar(id='id', cargo='BR1')

        actual = Avaliacao().avaliacoes('BR1', 'id', '*****@*****.**')

        self.assertIsNone(actual[0])
        self.assertIsNone(actual[1])
        self.assertIsNone(actual[2])
예제 #12
0
    def test_get_propositions(
        self,
        mock_obterDataInicialEFinal,
    ):
        propositions = [
            {
                'id': '1',
                'ementa': 'Teste1'
            },
            {
                'id': '2',
                'ementa': 'Teste2'
            },
            {
                'id': '3',
                'ementa': 'Teste3'
            },
        ]
        mock = Mocker(self.dep.prop)
        mock.add_response("obterTodasProposicoes", [propositions],
                          idDeputadoAutor='123',
                          dataApresentacaoInicio='2018-10-21',
                          dataApresentacaoFim='2018-10-28')
        mock.add_response("obterAutoresProposicao", [{
            'nome': 'Fulano da Silva'
        }], "1")
        mock.add_response("obterAutoresProposicao", [{'nome': 'Sicrano'}], "2")
        mock.add_response("obterAutoresProposicao", [{
            'nome': 'Fulano da Silva'
        }], "3")
        mock.add_response("obterProposicao", propositions[0], "1")
        mock.add_response("obterProposicao", propositions[2], "3")
        mock_obterDataInicialEFinal.return_value = ('2018-10-21', '2018-10-28')
        assemblyman = Parlamentar()
        assemblyman.id = '123'
        assemblyman.nome = 'Fulano da Silva'

        actual_response = self.dep.get_propositions(assemblyman,
                                                    datetime(2018, 10, 28))

        self.assertEqual(2, len(actual_response))
        self.assertEqual('Teste1', actual_response[0]['ementa'])
        self.assertEqual('Teste3', actual_response[1]['ementa'])
        mock_obterDataInicialEFinal.assert_called_once_with(
            datetime(2018, 10, 28))
        mock.assert_no_pending_responses()
예제 #13
0
    def test_generate_reports_multiplos_parlamentares(
            self,
            mock_send_email
    ):
        brasilia_tz = pytz.timezone('America/Sao_Paulo')
        agora = datetime.now()
        data_final = datetime(agora.year, agora.month, agora.day)
        data_final = brasilia_tz.localize(data_final)
        data_inicial = data_final - timedelta(days=7)
        parlamentar1 = Parlamentar(id='1', cargo='BR1')
        parlamentar2 = Parlamentar(id='2', cargo='BR2')
        parlamentar3 = Parlamentar(id='3', cargo='BR1')
        relatorio1 = Relatorio(
            parlamentar=parlamentar1,
            data_final=data_final,
            data_inicial=data_inicial
        ).save().reload()
        relatorio2 = Relatorio(
            parlamentar=parlamentar2,
            data_final=data_final,
            data_inicial=data_inicial
        ).save().reload()
        relatorio3 = Relatorio(
            parlamentar=parlamentar3,
            data_final=data_final,
            data_inicial=data_inicial
        ).save().reload()
        mock_send_email.return_value = True
        user = [User(
            username='******',
            password='******',
            email='*****@*****.**',
            inscricoes=Inscricoes(
                parlamentares=[parlamentar1, parlamentar2, parlamentar3],
                intervalo=7
            )
        )]

        generate_reports(user, data_final=agora)

        mock_send_email.assert_called_once_with(
            "*****@*****.**",
            [relatorio1.to_dict(), relatorio2.to_dict(), relatorio3.to_dict()],
            dates=ANY
        )
예제 #14
0
 def test_parlamentares_casa_parlamentar_sucesso(self,
                                                 mock_obter_parlamentar):
     mock_obter_parlamentar.return_value = Parlamentar(id='1',
                                                       nome='Parlamentar')
     actual = self.app.get("/v1/parlamentares/BR2/1")
     actual_data = json.loads(actual.data.decode('utf-8'))
     self.assertEqual(actual.status_code, 200)
     self.assertEqual(actual_data["id"], "1")
     self.assertEqual(actual_data["nome"], "Parlamentar")
예제 #15
0
 def test_avaliar_item_not_found(self):
     parlamentar = Parlamentar(id='id', cargo='BR1')
     relatorio = Relatorio(
         parlamentar=parlamentar,
         data_inicial='2019-01-01'
     )
     relatorio.save()
     
     with self.assertRaises(ItemNotFound):
         Avaliacao().avaliar('123', '1', '*****@*****.**', relatorio.pk)
예제 #16
0
    def test_generate_reports_one_obter_relatorio_fails(
        self,
        mock_Relatorios,
        mock_send_email
    ):
        class FakeRelatorios():
            def obter_relatorio(self, parlamentar, *args, **kwargs):
                if parlamentar == '2':
                    raise ModelError('msg')
                return {"nice": "JSON"}
        mock_Relatorios.side_effect = FakeRelatorios
        mock_send_email.return_value = True
        parlamentar1 = Parlamentar(id='1', cargo='BR1')
        parlamentar2 = Parlamentar(id='2', cargo='BR2')
        parlamentar3 = Parlamentar(id='3', cargo='BR1')
        user = [User(
            username='******',
            password='******',
            email='*****@*****.**',
            inscricoes=Inscricoes(
                parlamentares=[parlamentar1, parlamentar2, parlamentar3],
                intervalo=7
            )
        )]

        generate_reports(user)

        self.assertEqual(mock_Relatorios.call_count, 3)
        mock_send_email.assert_called_once_with(
            "*****@*****.**", [
                {"nice": "JSON"},
                {
                    'parlamentar': parlamentar2.to_dict(),
                    'orgaos': [],
                    'eventosPresentes': [],
                    'eventosPrevistos': [],
                    'eventosAusentes': [],
                    'proposicoes': [],
                    '_id': None
                },
                {"nice": "JSON"},
            ], dates=ANY)
예제 #17
0
 def obter_parlamentar(self, parlamentar_id):
     for deputado in self.dep.obterTodosDeputados():
         if deputado["id"] == parlamentar_id:
             parlamentar = Parlamentar()
             parlamentar.cargo = 'SP'
             parlamentar.id = deputado['id']
             parlamentar.nome = deputado['nome']
             parlamentar.partido = deputado['siglaPartido']
             parlamentar.uf = 'SP'
             parlamentar.foto = deputado['urlFoto']
             self.relatorio.parlamentar = parlamentar
             return parlamentar
     return None
예제 #18
0
    def test_deletar_avaliacao_sucesso(self):
        warnings.simplefilter("ignore")
        parlamentar = Parlamentar(id='id', cargo='BR1')
        avaliacao = Avaliacoes(parlamentar=parlamentar, email='*****@*****.**')
        avaliacao.save()
        avaliacao_id = str(avaliacao.pk)

        Avaliacao().deletar_avaliacao(avaliacao_id)
        actual = Avaliacoes.objects()

        self.assertEqual(len(actual), 0)
예제 #19
0
 def obter_parlamentares(self):
     deputados = []
     for page in self.dep.obterTodosDeputados():
         for item in page:
             parlamentar = Parlamentar()
             parlamentar.cargo = 'BR1'
             parlamentar.id = str(item['id'])
             parlamentar.nome = item['nome']
             parlamentar.partido = item['siglaPartido']
             parlamentar.uf = item['siglaUf']
             parlamentar.foto = item['urlFoto']
             deputados.append(parlamentar)
     return deputados
예제 #20
0
    def test_solicitar_geracao_relatorio_relatorio_existente(self):
        parlamentar = Parlamentar(id='1', cargo='BR1')
        brasilia_tz = pytz.timezone('America/Sao_Paulo')
        relatorio_inicial = Relatorio(
            parlamentar=parlamentar,
            data_final=brasilia_tz.localize(datetime(2019, 6, 29)),
            data_inicial=brasilia_tz.localize(datetime(2019, 6, 22))
        ).save()

        actual_response = Relatorios().solicitar_geracao_relatorio('1', '2019-06-29', 'BR1', 7)

        self.assertEqual(actual_response, relatorio_inicial)
예제 #21
0
 def obter_parlamentar(self, parlamentar_id):
     try:
         deputado_info = self.dep.obterDeputado(parlamentar_id)
     except CamaraDeputadosConnectionError:
         return None
     parlamentar = Parlamentar()
     parlamentar.cargo = 'BR1'
     parlamentar.id = str(deputado_info['id'])
     parlamentar.nome = deputado_info['ultimoStatus']['nome']
     parlamentar.partido = deputado_info['ultimoStatus']['siglaPartido']
     parlamentar.uf = deputado_info['ultimoStatus']['siglaUf']
     parlamentar.foto = deputado_info['ultimoStatus']['urlFoto']
     self.relatorio.parlamentar = parlamentar
     return parlamentar
예제 #22
0
    def test_obterParlamentares(self):
        mock = Mocker(self.dep.dep)
        mock_response = [
            {'id': '12', 'nome': 'Teste2', 'siglaPartido': 'P1'},
            {'id': '11', 'nome': 'Teste1', 'siglaPartido': 'P2'},
            {'id': '14', 'nome': 'Teste4', 'siglaPartido': 'P1'},
        ]
        expected_response = [
            Parlamentar(
                id='12',
                nome='Teste2',
                partido='P1',
                cargo='SP',
                uf='SP',
                foto=None
            ),
            Parlamentar(
                id='11',
                nome='Teste1',
                partido='P2',
                cargo='SP',
                uf='SP',
                foto=None
            ),
            Parlamentar(
                id='14',
                nome='Teste4',
                partido='P1',
                cargo='SP',
                uf='SP',
                foto=None
            )
        ]
        mock.add_response("obterTodosDeputados", mock_response)

        actual_response = self.dep.obter_parlamentares()

        self.assertEqual(expected_response, actual_response)
        mock.assert_no_pending_responses()
예제 #23
0
 def test_minhas_avaliacoes_parlamentar_parlamentar_fora_inscricoes(self):
     parlamentar = Parlamentar(nome="ParlamentarTeste2",
                               id="1234",
                               cargo="BR1")
     Avaliacoes(email="*****@*****.**",
                parlamentar=parlamentar,
                avaliacao="-1",
                avaliado={}).save()
     login(self.app, "test", "123")
     actual = self.app.get(
         "/minhasAvaliacoes?parlamentarTipo=BR1&parlamentar=1234")
     self.assertEqual(actual.status_code, 200)
     self.assertIn(b"ParlamentarTeste2", actual.data)
     self.assertIn(b"Saldo total: -1", actual.data)
 def obter_parlamentares(self):
     vereadores = self.ver.obterVereadores()
     lista = []
     for v in vereadores:
         lista.append(
             Parlamentar(
                 id=v['chave'],
                 nome=v['nome'],
                 partido=v['mandatos'][0]['partido']['sigla'],
                 uf='SP',
                 cargo='SÃO PAULO',
                 foto='https://www.99luca11.com/Users/usuario_sem_foto.png')
         )
     return lista
 def obter_parlamentar(self, parlamentar_id):
     for item in self.ver.obterVereadores():
         if str(item['chave']) == parlamentar_id:
             parlamentar = Parlamentar()
             parlamentar.cargo = 'SÃO PAULO'
             parlamentar.nome = item['nome']
             parlamentar.id = str(item['chave'])
             for mandato in item['mandatos']:
                 if mandato['fim'] > datetime.now():
                     parlamentar.partido = mandato['partido']['sigla']
             parlamentar.uf = 'SP'
             parlamentar.foto = \
                 'https://www.99luca11.com/Users/usuario_sem_foto.png'
             self.obter_cargos_parlamentar(item['cargos'])
             self.relatorio.parlamentar = parlamentar
             return parlamentar
     return None
예제 #26
0
 def obter_parlamentares(self):
     try:
         parlamentares = []
         for deputado in self.dep.obterTodosDeputados():
             parlamentar = Parlamentar()
             parlamentar.cargo = 'SP'
             parlamentar.id = deputado['id']
             parlamentar.nome = deputado['nome']
             parlamentar.partido = deputado['siglaPartido']
             parlamentar.uf = 'SP'
             parlamentar.foto = deputado[
                 'urlFoto'] if 'urlFoto' in deputado else None
             parlamentares.append(parlamentar)
         return parlamentares
     except ALESPError as e:
         logging.error("[ALESP] {}".format(e))
         raise ModelError("Erro da API da ALESP")
 def test_post_usuarios_inscricoes_sucesso(self, mock_obter_parlamentar):
     warnings.simplefilter("ignore")
     mock_obter_parlamentar.return_value = Parlamentar(id="12345",
                                                       cargo="BR1")
     login_header = login_api(self.app, "test", "123")
     actual = self.app.post("/v1/usuarios/inscricoes",
                            data=json.dumps({
                                'casa': 'BR1',
                                'parlamentar': '12345'
                            }),
                            content_type='application/json',
                            headers=login_header)
     actual_data = json.loads(actual.data.decode("utf-8"))
     self.assertEqual(actual.status_code, 201)
     self.assertEqual(actual_data, {"message": "Criada"})
예제 #28
0
    def test_obter_relatorio_json_inexistente_funcao_sem_erro(
        self,
        mock_model_selector
    ):
        parlamentar = Parlamentar(id='1', cargo='BR1')
        relatorio = Relatorio(parlamentar=parlamentar, data_final=datetime(2019, 1, 1))
        class FakeModel:
            def obter_relatorio(self, *args, **kwargs):
                return relatorio
        mock_model_selector.return_value = FakeModel

        actual_response = Relatorios().obter_relatorio('1', '2019-01-01', 'BR1', periodo=7)
        actual_response['_id'] = 'id'
        relatorio.pk = 'id'

        self.assertEqual(mock_model_selector.call_count, 1)
        self.assertEqual(actual_response, relatorio.to_dict())
예제 #29
0
    def test_send_push_notification_invalid_json_response(self, mock_urllib3):
        def assert_equal(actual, expected):
            self.assertEqual(actual, expected)

        class FakePoolManager:
            def __init__(self, *args, **kwargs):
                FakePoolManager.call_count = 0

            def request(self, method, url, headers, body):
                class response():
                    status = 401
                    data = '<HTML><HEAD><TITLE>Invalid (legacy) Server-key delivered or Sender is not authorized to perform request.</TITLE></HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"><H1>Invalid (legacy) Server-key delivered or Sender is not authorized to perform request.</H1><H2>Error 401</H2></BODY></HTML>'.encode(
                        'utf-8')

                FakePoolManager.call_count += 1
                assert_equal(method, "POST")
                assert_equal(url, "https://fcm.googleapis.com/fcm/send")
                return response()

        data_inicial = datetime(2019, 10, 12)
        data_final = datetime(2019, 10, 19)
        parlamentar1 = Parlamentar(id='1', cargo='BR1', nome='AMANDA')
        relatorio1 = Relatorio(
            id="123",
            parlamentar=parlamentar1,
            data_final=data_final,
            data_inicial=data_inicial,
            proposicoes=[
                Proposicao(id="1"),
                Proposicao(id="2"),
                Proposicao(id="3"),
                Proposicao(id="4")
            ],
            eventos_presentes=[Evento(id="1"), Evento(id="2")],
            eventos_previstos=None,
            eventos_ausentes=[Evento(id="4"),
                              Evento(id="5"),
                              Evento(id="6")])

        mock_urllib3.side_effect = FakePoolManager

        result = send_push_notification("token", [relatorio1.to_dict()])

        self.assertTrue(mock_urllib3.called)
        self.assertEqual(1, mock_urllib3.side_effect.call_count)
        self.assertFalse(result)
예제 #30
0
    def test_solicitar_geracao_relatorio_nova_thread(
        self,
        mock_model_selector
    ):
        brasilia_tz = pytz.timezone('America/Sao_Paulo')
        parlamentar = Parlamentar(id='1', cargo='BR1')
        relatorio_gerado = Relatorio(
            parlamentar=parlamentar,
            data_final=brasilia_tz.localize(datetime(2019, 6, 29)),
            data_inicial=brasilia_tz.localize(datetime(2019, 6, 22))
        )
        def obter_relatorio(self, *args, **kwargs):
            return relatorio_gerado
        mock_model_selector.return_value = obter_relatorio

        actual_response = Relatorios().solicitar_geracao_relatorio('1', '2019-06-29', 'BR1', 7)

        self.assertEqual(actual_response, True)