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))
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')
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)
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")
def get_periodo_casa_legislativa(): ini = date(2000, 1, 1) fim = date(2010, 1, 1) periodo = models.PeriodoCasaLegislativa(ini, fim) return periodo