def test_filtra_votacoes_com_periodo_(self):
     casa_legislativa = models.CasaLegislativa.objects.get(id=1)
     periodo_casa_legislativa = models.PeriodoCasaLegislativa(
         date(1989, 8, 8), date(1992, 11, 11))
     lista_palavras_chave = ['cotas', 'guerra', 'violência']
     filtro_votacao = filtro.FiltroVotacao()
     votacoes_filtradas = filtro_votacao.filtra_votacoes(
         casa_legislativa, periodo_casa_legislativa, lista_palavras_chave)
     self.assertEquals(1, len(votacoes_filtradas))
示例#2
0
 def test_ordenar_partidos(self):
     periodo = models.PeriodoCasaLegislativa(date(1989, 2, 2),
                                             date(1989, 10, 10))
     casa_legislativa = \
         models.CasaLegislativa.objects.get(nome_curto='conv')
     ordem = []
     ordem = ordenacao.ordenar_partidos(casa_legislativa, periodo)
     self.assertEqual(ordem[0].nome, 'Jacobinos')
     self.assertEqual(ordem[1].nome, 'Girondinos')
     self.assertEqual(ordem[2].nome, 'Monarquistas')
示例#3
0
 def test_build_query_to_elaslicSearch(self):
     nome_curto = "cmsp"
     ini = date(2000, 1, 1)
     fim = date(2010, 1, 1)
     periodo = models.PeriodoCasaLegislativa(ini, fim)
     palavras_chaves = ["Educação", "Professor", "Escola"]
     query_builder = filtro.LuceneQueryBuilder(nome_curto, periodo,
                                               palavras_chaves)
     query = query_builder.build()
     query_esperada = 'casa_legislativa_nome_curto:cmsp AND Educação AND Professor AND Escola AND votacao_data:[2000-01-01 TO 2010-01-01]'
     self.assertEquals(query, query_esperada)
示例#4
0
 def get_analises(self):
     """ Método que deve ser usado por classes exteriores para acessar os dados desta instância. Este método irá verificar se a análise já foi feita e está disponível no banco de dados. Se não estiver, os cálculos são realizados, e a análise é salva no bd."""
     # Calcular o hash md5 da análise solicitada para ver se já está no bd
     self.hash_id = self._calcula_hash()
     logger.info("hash_id desta análise temporal é %s." % self.hash_id)
     logger.info("casa legislativa é %s" % self.casa_legislativa)
     analiseT_do_bd = AnaliseTemporal.objects.filter(
         hash_id__exact=self.hash_id)
     if len(analiseT_do_bd) == 0:
         logger.info("Análises serão feitas (ainda não existem no BD).")
         self._faz_analises()
         self.salvar_no_bd()
         logger.info("Análises salvas no BD.")
     else:
         logger.info("Análises já existem.")
         # criar lista de analisadores_periodo com dicionarios de coordenadas.
         if len(self.votacoes) == 0:
             votacoes = None
         else:
             votacoes = self.votacoes
         if len(self.partidos) == 0:
             partidos = None
         else:
             partidos = self.partidos
         analiseT_do_bd = analiseT_do_bd[0]
         self.area_total = analiseT_do_bd.area_total
         self.area_total = analiseT_do_bd.area_total
         for ap_do_bd in analiseT_do_bd.analiseperiodo_set.all():
             periodocl = models.PeriodoCasaLegislativa(
                 ap_do_bd.data_inicio, ap_do_bd.data_fim)
             ap = AnalisadorPeriodo(self.casa_legislativa, periodocl,
                                    votacoes, partidos)
             ap.analise_ja_feita = True  # nao quero que faça analise, pois os dados virão do bd.
             for pos_do_bd in ap_do_bd.posicoes.all():
                 ap.coordenadas[pos_do_bd.partido.nome] = (pos_do_bd.x,
                                                           pos_do_bd.y)
                 ap.tamanhos_partidos[pos_do_bd.partido.nome] = (
                     pos_do_bd.tamanho)
                 # TODO: acrescentar presença.
             self.analisadores_periodo.append(ap)
         logger.info("analise baixada do bd")
示例#5
0
def get_periodo_casa_legislativa():
    ini = date(2000, 1, 1)
    fim = date(2010, 1, 1)
    periodo = models.PeriodoCasaLegislativa(ini, fim)
    return periodo