def setUpClass(cls): # Criando dados fictícios no mock partidoTest1 = models.Partido(nome='PMDB', numero='40') partidoTest2 = models.Partido(nome='PT', numero='13') partidoTest3 = models.Partido(nome='PSDB', numero='23') partidoTest1.save() partidoTest2.save() partidoTest3.save() parlamentarTest1 = models.Parlamentar( id_parlamentar='', nome='Ivandro Cunha Lima', genero='') parlamentarTest2 = models.Parlamentar( id_parlamentar='', nome='Fernando Ferro', genero='') parlamentarTest3 = models.Parlamentar( id_parlamentar='', nome='Humberto Costa', genero='') parlamentarTest1.save() parlamentarTest2.save() parlamentarTest3.save() casa_legislativaTest1 = models.CasaLegislativa( nome='Camara dos Deputados', nome_curto='cdep', esfera='FEDERAL', local='', atualizacao='2012-06-01') casa_legislativaTest2 = models.CasaLegislativa( nome='Camara Municipal de Sao Paulo', nome_curto='cmsp', esfera='MUNICIPAL', local='Sao Paulo - SP', atualizacao='2012-12-31') casa_legislativaTest1.save() casa_legislativaTest2.save() legislaturaTest1 = models.Legislatura( parlamentar=parlamentarTest1, casa_legislativa=casa_legislativaTest1, inicio='2004-01-01', fim='2012-07-01', partido=partidoTest1, localidade='PB') legislaturaTest1.save() # Exportando dados do mock para os xml # exportar.serialize_partido() # exportar.serialize_parlamentar() # exportar.serialize_casa_legislativa() # exportar.serialize_legislatura() # Deletando os registros do mock partidoTest1.delete() partidoTest2.delete() partidoTest3.delete() parlamentarTest1.delete() parlamentarTest2.delete() parlamentarTest3.delete() casa_legislativaTest1.delete() casa_legislativaTest2.delete() legislaturaTest1.delete()
def setUpClass(cls): '''Metodo responsavel por setar o que for necessario para rodar os testes. No nosso a criacao dos objetos no banco de testes''' partidoTest1 = models.Partido(nome='PMDB', numero='40') partidoTest2 = models.Partido(nome='PT', numero='13') partidoTest3 = models.Partido(nome='PSDB', numero='23') partidoTest1.save() partidoTest2.save() partidoTest3.save() parlamentarTest1 = models.Parlamentar( id_parlamentar='', nome='Ivandro Cunha Lima', genero='') parlamentarTest2 = models.Parlamentar( id_parlamentar='', nome='Fernando Ferro', genero='') parlamentarTest3 = models.Parlamentar( id_parlamentar='', nome='Humberto Costa', genero='') parlamentarTest1.save() parlamentarTest2.save() parlamentarTest3.save() casa_legislativaTest1 = models.CasaLegislativa( nome='Camara dos Deputados', nome_curto='cdep', esfera='FEDERAL', local='', atualizacao='2012-06-01') casa_legislativaTest2 = models.CasaLegislativa( nome='Camara Municipal de Sao Paulo', nome_curto='cmsp', esfera='MUNICIPAL', local='Sao Paulo - SP', atualizacao='2012-12-31') casa_legislativaTest1.save() casa_legislativaTest2.save() legislaturaTest1 = models.Legislatura( parlamentar=parlamentarTest1, casa_legislativa=casa_legislativaTest1, inicio='2004-01-01', fim='2012-07-01', partido=partidoTest1, localidade='PB') legislaturaTest1.save() proposicaoTest1 = models.Proposicao() proposicaoTest1.id_prop = '5555' proposicaoTest1.sigla = 'PL' proposicaoTest1.numero = '4520' proposicaoTest1.casa_legislativa = casa_legislativaTest1 proposicaoTest1.save() votacaoTest1 = models.Votacao( id_vot=' 12345', descricao='Teste da votacao', data='1900-12-05', resultado='Teste', proposicao=proposicaoTest1) votacaoTest1.save() votoTest1 = models.Voto( votacao=votacaoTest1, legislatura=legislaturaTest1, opcao='TESTE') votoTest1.save() exportar.main()
def _cria_legislatura(self, voto_parlamentar_tree, votacao): nome = voto_parlamentar_tree.find('NomeParlamentar').text codigo = voto_parlamentar_tree.find('CodigoParlamentar').text sexo = voto_parlamentar_tree.find('SexoParlamentar').text if models.Parlamentar.objects.filter(nome=nome, id_parlamentar=codigo).exists(): senador = models.Parlamentar.objects.get(nome=nome, id_parlamentar=codigo) else: senador = models.Parlamentar() senador.id_parlamentar = codigo senador.nome = nome senador.genero = sexo senador.save() leg = models.Legislatura() leg.parlamentar = senador leg.casa_legislativa = self.senado ini, fim = self._periodo_arbitrario(votacao.data) leg.inicio = ini leg.fim = fim sigla_partido = voto_parlamentar_tree.find('SiglaPartido').text leg.partido = self._find_partido(sigla_partido) leg.localidade = voto_parlamentar_tree.find('SiglaUF').text leg.save() return leg
def preencher_banco(casa): partido = models.Partido(nome="PTest", numero="1") partido.save() parlamentar = models.Parlamentar(id_parlamentar="1", nome="Teste_vereador", partido=partido, casa_legislativa=casa) parlamentar.save()
def _gera_parlamentares(self): # nome partido => lista de parlamentares do partido self.parlamentares = {} for partido in self.partidos: self.parlamentares[partido.nome] = [] for i in range(0, PARLAMENTARES_POR_PARTIDO): parlamentar = models.Parlamentar() parlamentar.id_parlamentar = '%s%s' % (partido.nome[0], str(i)) parlamentar.nome = 'Pierre' parlamentar.casa_legislativa = self.casa parlamentar.partido = partido parlamentar.save() self.parlamentares[partido.nome].append(parlamentar)
def processa_legislatura(self, leg_tree): parlamentares_tree = leg_tree.find('Parlamentar').find('Parlamentares') for parlamentar_tree in parlamentares_tree: codigo = parlamentar_tree.find('CodigoParlamentar').text nome = parlamentar_tree.find('NomeParlamentar').text uf = parlamentar_tree.find('SiglaUF').text partidos_tree = parlamentar_tree.find('Partidos') if partidos_tree is not None: nome_partido = self._find_nome_partido(partidos_tree) else: logger.warn('Senador %s não possui lista de partidos!' % nome) nome_partido = None ano_inicio = parlamentar_tree.find('AnoInicio').text ano_fim = parlamentar_tree.find('AnoFim').text if nome_partido == 'PC DO B': nome_partido = 'PCdoB' inicio_legislatura = self._converte_data2('01/01/%s' % ano_inicio) fim_legislatura = self._converte_data2('31/12/%s' % ano_fim) partido = self._find_partido(nome_partido) if not models.Legislatura.objects.filter(inicio=inicio_legislatura, fim=fim_legislatura, parlamentar__nome=nome, partido__nome=nome_partido ).exists(): logger.info('Importando senador %s (%s-%s)' % (nome, nome_partido, uf)) if models.Parlamentar.objects.filter(nome=nome, id_parlamentar=codigo ).exists(): senador = models.Parlamentar.objects.get( nome=nome, id_parlamentar=codigo) else: senador = models.Parlamentar() senador.id_parlamentar = codigo senador.nome = nome senador.save() leg = models.Legislatura() leg.parlamentar = senador leg.casa_legislativa = self.senado leg.inicio = inicio_legislatura leg.fim = fim_legislatura leg.partido = partido leg.localidade = uf leg.save()
def votante(self, ver_tree): id_parlamentar = ver_tree.get('IDParlamentar') if self.parlamentares.has_key(id_parlamentar): votante = self.parlamentares[id_parlamentar] else: votante = models.Parlamentar() votante.save() votante.id_parlamentar = id_parlamentar votante.nome = ver_tree.get('NomeParlamentar') votante.save() if self.verbose: print 'Vereador %s salvo' % votante self.parlamentares[id_parlamentar] = votante #TODO genero return votante
def _votante(self, nome_dep, nome_partido): """Procura primeiro no cache e depois no banco; se não existir, cria novo parlamentar""" key = '%s-%s' % (nome_dep, nome_partido) parlamentar = self.parlamentares.get(key) if not parlamentar: parlamentares = models.Parlamentar.objects.filter(nome=nome_dep) if parlamentares: parlamentar = parlamentares[0] self.parlamentares[key] = parlamentar if not parlamentar: parlamentar = models.Parlamentar() parlamentar.nome = nome_dep parlamentar.save() self.parlamentares[key] = parlamentar return parlamentar
def create_legislature(self, voto_parlamentar_tree, votacao): # Receive the parliamentary's name from 'voto_parlamentar_tree'. name_parliamentary = voto_parlamentar_tree.find_legislature( 'NomeParlamentar').text # Receive parliamentary's code from 'voto_parlamentar_tree'. code_parliamentary = voto_parlamentar_tree.find_legislature( 'CodigoParlamentar').text # Receive parliamentary's gender from 'voto_parlamentar_tree'. gender_parliamentary = voto_parlamentar_tree.find_legislature( 'SexoParlamentar').text if models.Parlamentar.objects.filter( nome=name_parliamentary, id_parlamentar=code_parliamentary).exists(): # Receive name and code from 'Parlamentar' from 'models'. senator = models.Parlamentar.objects.get( nome=name_parliamentary, id_parlamentar=code_parliamentary) else: # Receive 'Parlamentar' from models. senator = models.Parlamentar() senator.id_parlamentar = code_parliamentary senator.nome = name_parliamentary senator.genero = gender_parliamentary senator.save() # Receive 'Legislatura' from models. legislature = models.Legislatura() legislature.parlamentar = senator legislature.casa_legislativa = self.senado begin, end = self.assign_random_period(votacao.data) legislature.inicio = begin legislature.fim = end sigla_partido = voto_parlamentar_tree.find_legislature( 'SiglaPartido').text legislature.partido = self.find_political_party(sigla_partido) legislature.localidade = voto_parlamentar_tree.find_legislature( 'SiglaUF').text legislature.save() return legislature
def vereador(self, ver_tree): nome_vereador = ver_tree.get('Nome') partido = self.partido(ver_tree) key = (nome_vereador, partido.nome) if key in self.parlamentares: vereador = self.parlamentares[key] else: id_parlamentar = ver_tree.get('IDParlamentar') vereador = models.Parlamentar() vereador.id_parlamentar = id_parlamentar vereador.nome = nome_vereador vereador.partido = partido vereador.casa_legislativa = self.cmsp vereador.save() if self.verbose: logger.info('Vereador %s salvo' % vereador) self.parlamentares[key] = vereador return vereador
def _votante(self, deputy_name, party_name): """Search the cache first and then in the database; if not, creates new parliamentary.""" key = '%s-%s' % (deputy_name, party_name) parliamentarian = self.parlamentares.get(key) if not parliamentarian: parliamentarians = models.Parlamentar.objects.filter(nome=deputy_name) if parliamentarians: parliamentarian = parliamentarians[0] self.parlamentares[key] = parliamentarian if not parliamentarian: parliamentarian = models.Parlamentar() parliamentarian.nome = deputy_name parliamentarian.save() self.parlamentares[key] = parliamentarian return parliamentarian
def _votante(self, nome_dep, nome_partido): """Procura primeiro no cache e depois no banco; se não existir, cria novo parlamentar""" key = '%s-%s' % (nome_dep, nome_partido) parlamentar = self.parlamentares.get(key) if not parlamentar: parlamentares = models.Parlamentar.objects.filter(nome=nome_dep) if parlamentares: parlamentar = parlamentares[0] self.parlamentares[key] = parlamentar if not parlamentar: parlamentar = models.Parlamentar() parlamentar.nome = nome_dep #votante.id_parlamentar = #votante.genero = parlamentar.save() self.parlamentares[key] = parlamentar #logger.debug('Deputado %s salvo' % parlamentar) return parlamentar
def _gera_legislaturas(self): self.legs = {} # nome partido => lista de legislaturas do partido for p in self.partidos: self.legs[p.nome] = [] for i in range(0, PARLAMENTARES_POR_PARTIDO): parlamentar = models.Parlamentar() parlamentar.id_parlamentar = '%s%s' % (p.nome[0], str(i)) parlamentar.nome = 'Pierre' parlamentar.save() leg = models.Legislatura() leg.casa_legislativa = self.casa leg.inicio = INICIO_PERIODO leg.fim = FIM_PERIODO leg.partido = p leg.parlamentar = parlamentar leg.save() self.legs[p.nome].append(leg)
def _new_legislature(self): # Name search_political_party => list of party legislaturas self.legs = {} for p in self.partidos: self.legs[p.nome] = [] for i in range(0, PARLAMENTS_PER_PARTY): parlamentar = models.Parlamentar() parlamentar.id_parlamentar = '%s%s' % (p.nome[0], str(i)) parlamentar.nome = 'Pierre' parlamentar.save() leg = models.Legislatura() leg.casa_legislativa = self.casa leg.inicio = BEGIN_PERIOD leg.fim = END_PERIOD leg.partido = p leg.parlamentar = parlamentar leg.save() self.legs[p.nome].append(leg)
def list_parliamentary(self, ver_tree): # Store 'IDParlamentar' coming from 'ver_tree' parliamentary_id = ver_tree.get('IDParlamentar') if parliamentary_id in self.parlamentares: # Receives the parliamentary list with their IDs. voter = self.parlamentares[parliamentary_id] else: voter = models.Parlamentar() voter.save() voter.id_parlamentar = parliamentary_id voter.nome = ver_tree.get('NomeParlamentar') voter.save() if self.verbose: print 'Vereador %s salvo' % voter self.parlamentares[parliamentary_id] = voter # TODO gender return voter
def _find_parlamentar(self, voto_parlamentar_tree): nome_senador = voto_parlamentar_tree.find('NomeParlamentar').text nome_partido = voto_parlamentar_tree.find('SiglaPartido').text localidade = voto_parlamentar_tree.find('SiglaUF').text partido = self._find_partido(nome_partido) key = (nome_senador, partido.nome, localidade) if key in self.parlamentares: senador = self.parlamentares[key] else: codigo = voto_parlamentar_tree.find('CodigoParlamentar').text sexo = voto_parlamentar_tree.find('SexoParlamentar').text senador = models.Parlamentar() senador.id_parlamentar = codigo senador.nome = nome_senador senador.genero = sexo senador.casa_legislativa = self.senado senador.partido = partido senador.localidade = localidade senador.save() self.parlamentares[key] = senador self.progresso() return senador
def _deputado(self, voto_xml): """Procura primeiro no cache e depois no banco; se não existir, cria novo parlamentar""" nome = voto_xml.get('Nome') nome_partido = voto_xml.get('Partido') partido = self._partido(nome_partido) localidade = voto_xml.get('UF') key = (nome, partido.nome, localidade) parlamentar = self.parlamentares.get(key) if not parlamentar: parlamentar = models.Parlamentar() parlamentar.id_parlamentar = voto_xml.get('ideCadastro') parlamentar.nome = nome parlamentar.partido = partido parlamentar.localidade = localidade parlamentar.casa_legislativa = self.camara_dos_deputados parlamentar.save() if partido.numero == 0: logger.warn('Não achou o partido %s' % nome_partido) logger.info('Deputado %s inserido sem partido' % nome) self.parlamentares[key] = parlamentar return parlamentar
def carrega_xml(self, short_name): directory = RESOURCES_FOLDER + short_name + '.xml' try: tree = etree.parse(directory) root = tree.getroot() except Exception: logger.error("Arquivo não encontrado: %s.xml" % short_name) print "Xml não encontrado" return None models.CasaLegislativa.remove_house(short_name) print "Voltei" legislativeHouse = models.CasaLegislativa() legislativeHouse.nome_curto = root.attrib.get("short_name") legislativeHouse.nome = root.attrib.get("nome") legislativeHouse.esfera = root.attrib.get("esfera") legislativeHouse.local = root.attrib.get("local") legislativeHouse.atualizacao = root.attrib.get("atualizacao") legislativeHouse.save() for child_proposition in root.iter("Proposicao"): proposition = models.Proposicao() proposition.casa_legislativa = legislativeHouse proposition.id_prop = child_proposition.attrib.get("id_prop") proposition.sigla = child_proposition.attrib.get("sigla") proposition.numero = child_proposition.attrib.get("numero") proposition.ano = child_proposition.attrib.get("ano") proposition.ementa = child_proposition.attrib.get("ementa") proposition.descricao = child_proposition.attrib.get("descricao") proposition.indexacao = child_proposition.attrib.get("indexacao") if (child_proposition.attrib.get("data_apresentacao") == "None"): # Default value if the date comes in white proposition.data_apresentacao = "1900-01-01" proposition.save() else: proposition.data_apresentacao = child_proposition.attrib.get( "data_apresentacao") proposition.save() # Get the daughter of the subtree being traversed. for child_voting in child_proposition.findall("Votacao"): voting = models.Votacao() voting.proposicao = proposition voting.id_votacao = child_voting.attrib.get("id_votacao") voting.id_vot = child_voting.attrib.get("id_vot") voting.descricao = child_voting.attrib.get("descricao") voting.data = child_voting.attrib.get("data") voting.resultado = child_voting.attrib.get("resultado") voting.save() for child_vote in child_voting.findall("Voto"): party = models.Partido() party.numero = child_vote.attrib.get("numero") party.nome = child_vote.attrib.get( "search_political_party") partido_existente = models.Partido.objects.filter( numero=party.numero, nome=party.nome) if len(partido_existente) > 0: party = partido_existente[0] else: party.save() parliamentarian = models.Parlamentar() parliamentarian.nome = child_vote.attrib.get("nome") parliamentarian.id_parlamentar = child_vote.attrib.get( "id_parlamentar") parliamentarian.genero = child_vote.attrib.get("genero") existing_parliamentarian = models.Parlamentar.objects.filter( nome=parliamentarian.nome, id_parlamentar=parliamentarian.id_parlamentar, genero=parliamentarian.genero) if len(existing_parliamentarian) > 0: parliamentarian = existing_parliamentarian[0] else: parliamentarian.save() legislature = models.Legislatura() legislature.partido = party legislature.parlamentar = parliamentarian legislature.casa_legislativa = legislativeHouse legislature.inicio = child_vote.attrib.get("inicio") legislature.fim = child_vote.attrib.get("fim") legislature.localidade = child_vote.attrib.get( "localidade") if legislature.localidade is None: legislature.localidade = "" else: legislature.localidade = "" + legislature.localidade existing_legislature = models.Legislatura.objects.filter( party=legislature.partido, parliamentarian=legislature.parlamentar, legislative_house=legislature.casa_legislativa, init=legislature.inicio, fim=legislature.fim) if len(existing_legislature) > 0: legislature = existing_legislature[0] else: legislature.save() vote = models.Voto() vote.votacao = voting vote.legislatura = legislature vote.opcao = child_vote.attrib.get("opcao") vote.save()
def carrega_xml(self, nome_curto): diretorio = RESOURCES_FOLDER + nome_curto + '.xml' try: tree = etree.parse(diretorio) root = tree.getroot() except Exception: print "Xml não encontrado" return None models.CasaLegislativa.deleta_casa(nome_curto) print "Voltei" casaLegislativa = models.CasaLegislativa() casaLegislativa.nome_curto = root.attrib.get("nome_curto") #if(models.CasaLegislativa.objects.get(nome_curto = casaLegislativa.nome_curto)): #models.deleta_casa(casaLegislativa.nome_curto) casaLegislativa.nome = root.attrib.get("nome") casaLegislativa.esfera = root.attrib.get("esfera") casaLegislativa.local = root.attrib.get("local") casaLegislativa.atualizacao = root.attrib.get("atualizacao") casaLegislativa.save() for child_proposicao in root.iter("Proposicao"): proposicao = models.Proposicao() proposicao.casa_legislativa = casaLegislativa proposicao.id_prop = child_proposicao.attrib.get("id_prop") proposicao.sigla = child_proposicao.attrib.get("sigla") proposicao.numero = child_proposicao.attrib.get("numero") proposicao.ano = child_proposicao.attrib.get("ano") proposicao.ementa = child_proposicao.attrib.get("ementa") proposicao.descricao = child_proposicao.attrib.get("descricao") proposicao.indexacao = child_proposicao.attrib.get("indexacao") if (child_proposicao.attrib.get("data_apresentacao") == "None"): #Valor default caso a data venha em branco proposicao.data_apresentacao = "1900-01-01" proposicao.save() else: proposicao.data_apresentacao = child_proposicao.attrib.get( "data_apresentacao") proposicao.save() #Pega a filha da subarvore que está sendo percorrida. for child_votacao in child_proposicao.findall("Votacao"): votacao = models.Votacao() votacao.proposicao = proposicao votacao.id_votacao = child_votacao.attrib.get("id_votacao") votacao.id_vot = child_votacao.attrib.get("id_vot") votacao.descricao = child_votacao.attrib.get("descricao") votacao.data = child_votacao.attrib.get("data") votacao.resultado = child_votacao.attrib.get("resultado") votacao.save() #self.verifica_votacao = True for child_voto in child_votacao.findall("Voto"): partido = models.Partido() partido.numero = child_voto.attrib.get("numero") partido.nome = child_voto.attrib.get("partido") partido_existente = models.Partido.objects.filter( numero=partido.numero, nome=partido.nome) if len(partido_existente) > 0: partido = partido_existente[0] else: partido.save() parlamentar = models.Parlamentar() parlamentar.nome = child_voto.attrib.get("nome") parlamentar.id_parlamentar = child_voto.attrib.get( "id_parlamentar") parlamentar.genero = child_voto.attrib.get("genero") parlamentar_existente = models.Parlamentar.objects.filter( nome=parlamentar.nome, id_parlamentar=parlamentar.id_parlamentar, genero=parlamentar.genero) if len(parlamentar_existente) > 0: parlamentar = parlamentar_existente[0] else: parlamentar.save() legislatura = models.Legislatura() legislatura.partido = partido legislatura.parlamentar = parlamentar legislatura.casa_legislativa = casaLegislativa legislatura.inicio = child_voto.attrib.get("inicio") legislatura.fim = child_voto.attrib.get("fim") legislatura.localidade = child_voto.attrib.get( "localidade") if legislatura.localidade == None: legislatura.localidade = "" else: legislatura.localidade = "" + legislatura.localidade legislatura_existente = models.Legislatura.objects.filter( partido=legislatura.partido, parlamentar=legislatura.parlamentar, casa_legislativa=legislatura.casa_legislativa, inicio=legislatura.inicio, fim=legislatura.fim) if len(legislatura_existente) > 0: legislatura = legislatura_existente[0] else: legislatura.save() voto = models.Voto() voto.votacao = votacao voto.legislatura = legislatura voto.opcao = child_voto.attrib.get("opcao") voto.save()
def setUpClass(cls): """Method to set responsible for what is needed to run the tests. In this case, the creation of objects in the test bank.""" testParty1 = models.Partido(nome='PMDB', numero='40') testParty2 = models.Partido(nome='PT', numero='13') partyTest3 = models.Partido(nome='PSDB', numero='23') testParty1.save() testParty2.save() partyTest3.save() parliamentaryTest1 = models.Parlamentar(id_parlamentar='', nome='Ivandro Cunha Lima', genero='') parliamentaryTest2 = models.Parlamentar(id_parlamentar='', nome='Fernando Ferro', genero='') parliamentaryTest3 = models.Parlamentar(id_parlamentar='', nome='Humberto Costa', genero='') parliamentaryTest1.save() parliamentaryTest2.save() parliamentaryTest3.save() legislative_houseTest1 = models.CasaLegislativa( nome='Camara dos Deputados', nome_curto='cdep', esfera='FEDERAL', local='', atualizacao='2012-06-01') legislative_houseTest2 = models.CasaLegislativa( nome='Camara Municipal de Sao Paulo', nome_curto='cmsp', esfera='MUNICIPAL', local='Sao Paulo - SP', atualizacao='2012-12-31') legislative_houseTest1.save() legislative_houseTest2.save() legislatureTest1 = models.Legislatura( parlamentar=parliamentaryTest1, casa_legislativa=legislative_houseTest1, inicio='2004-01-01', fim='2012-07-01', partido=testParty1, localidade='PB') legislatureTest1.save() propositionTest1 = models.Proposicao() propositionTest1.id_prop = '5555' propositionTest1.sigla = 'PL' propositionTest1.numero = '4520' propositionTest1.casa_legislativa = legislative_houseTest1 propositionTest1.save() votingTest1 = models.Votacao(id_vot=' 12345', descricao='Teste da votacao', data='1900-12-05', resultado='Teste', proposicao=propositionTest1) votingTest1.save() voteTest1 = models.Voto(votacao=votingTest1, legislatura=legislatureTest1, opcao='TESTE') voteTest1.save() exportar.main()
def setUpClass(cls): # Creating dummy data in mock: partyTest1 = models.Partido(nome='PMDB', numero='40') partyTest2 = models.Partido(nome='PT', numero='13') partyTest3 = models.Partido(nome='PSDB', numero='23') partyTest1.save() partyTest2.save() partyTest3.save() parliamentarianTest1 = models.Parlamentar(id_parlamentar='', nome='Ivandro Cunha Lima', genero='') parliamentarianTest2 = models.Parlamentar(id_parlamentar='', nome='Fernando Ferro', genero='') parliamentarianTest3 = models.Parlamentar(id_parlamentar='', nome='Humberto Costa', genero='') parliamentarianTest1.save() parliamentarianTest2.save() parliamentarianTest3.save() legislative_houseTest1 = models.CasaLegislativa( nome='Camara dos Deputados', nome_curto='cdep', esfera='FEDERAL', local='', atualizacao='2012-06-01') legislative_houseTest2 = models.CasaLegislativa( nome='Camara Municipal de Sao Paulo', nome_curto='cmsp', esfera='MUNICIPAL', local='Sao Paulo - SP', atualizacao='2012-12-31') legislative_houseTest1.save() legislative_houseTest2.save() legislatureTest1 = models.Legislatura( parlamentar=parliamentarianTest1, casa_legislativa=legislative_houseTest1, inicio='2004-01-01', fim='2012-07-01', partido=partyTest1, localidade='PB') legislatureTest1.save() propositionTest1 = models.Proposicao() propositionTest1.id_prop = '5555' propositionTest1.sigla = 'PL' propositionTest1.numero = '4520' propositionTest1.casa_legislativa = legislative_houseTest1 propositionTest1.save() votingTest1 = models.Votacao(id_vot=' 12345', descricao='Teste da votacao', data='1900-12-05', resultado='Teste', proposicao=propositionTest1) votingTest1.save() voteTest1 = models.Voto(votacao=votingTest1, legislatura=legislatureTest1, opcao='TESTE') voteTest1.save() # Exporting the mocks's data to XMLs: exportar.serialize_partido() exportar.serialize_parlamentar() exportar.serialize_casa_legislativa() exportar.serialize_legislatura() exportar.serialize_proposicao() exportar.serialize_votacao() exportar.serialize_voto() # Deleting records of mock: partyTest1.delete() partyTest2.delete() partyTest3.delete() parliamentarianTest1.delete() parliamentarianTest2.delete() parliamentarianTest3.delete() legislative_houseTest1.delete() legislative_houseTest2.delete() legislatureTest1.delete() propositionTest1.delete() votingTest1.delete() voteTest1.delete()
def process_legislature(self, leg_tree): parliamentaries_tree = leg_tree.find_legislature( 'Parlamentar').find_legislature('Parlamentares') for parlamentar_tree in parliamentaries_tree: # Receive parliamentary's code. parliamentary_code = parlamentar_tree.find_legislature( 'CodigoParlamentar').text # Receive parliamentary's name. parliamentary_name = parlamentar_tree.find_legislature( 'NomeParlamentar').text # Receive parliamentary's UF. parliamentary_uf = parlamentar_tree.find_legislature( 'SiglaUF').text # Receive 'Partidos' from 'parlamentar_tree'. political_parties_tree = parlamentar_tree.find_legislature( 'Partidos') if political_parties_tree is not None: political_party_name = self.find_political_party_by_name( political_parties_tree) else: logger.warn('Senador %s não possui lista de partidos!' % parliamentary_name) political_party_name = None initial_year_of_legislature = parlamentar_tree.find_legislature( 'AnoInicio').text final_year_of_legislature = parlamentar_tree.find_legislature( 'AnoFim').text if political_party_name == 'PC DO B': political_party_name = 'PCdoB' date_of_inicial_legislature = self.convert_string_to_object( '01/01/%s' % initial_year_of_legislature) date_of_final_legislature = self.convert_string_to_object( '31/12/%s' % final_year_of_legislature) political_party = self.find_political_party(political_party_name) if not models.Legislatura.objects.filter( inicio=date_of_inicial_legislature, fim=date_of_final_legislature, parlamentar__nome=parliamentary_name, partido__nome=political_party_name).exists(): logger.info('Importando senador %s (%s-%s)' % (parliamentary_name, political_party_name, parliamentary_uf)) if models.Parlamentar.objects.filter( nome=parliamentary_name, id_parlamentar=parliamentary_code).exists(): senator = models.Parlamentar.objects.get( nome=parliamentary_name, id_parlamentar=parliamentary_code) else: senator = models.Parlamentar() senator.id_parlamentar = parliamentary_code senator.nome = parliamentary_name senator.save() legislature = models.Legislatura() legislature.parlamentar = senator legislature.casa_legislativa = self.senado legislature.inicio = date_of_inicial_legislature legislature.fim = date_of_final_legislature legislature.partido = political_party legislature.localidade = parliamentary_uf legislature.save()
def setUpClass(cls): #Criando dados ficticios no mock partidoTest1 = models.Partido(nome='PMDB', numero='40') partidoTest2 = models.Partido(nome='PT', numero='13') partidoTest3 = models.Partido(nome='PSDB', numero='23') partidoTest1.save() partidoTest2.save() partidoTest3.save() parlamentarTest1 = models.Parlamentar(id_parlamentar='', nome='Ivandro Cunha Lima', genero='') parlamentarTest2 = models.Parlamentar(id_parlamentar='', nome='Fernando Ferro', genero='') parlamentarTest3 = models.Parlamentar(id_parlamentar='', nome='Humberto Costa', genero='') parlamentarTest1.save() parlamentarTest2.save() parlamentarTest3.save() casa_legislativaTest1 = models.CasaLegislativa( nome='Camara dos Deputados', nome_curto='cdep', esfera='FEDERAL', local='', atualizacao='2012-06-01') casa_legislativaTest2 = models.CasaLegislativa( nome='Camara Municipal de Sao Paulo', nome_curto='cmsp', esfera='MUNICIPAL', local='Sao Paulo - SP', atualizacao='2012-12-31') casa_legislativaTest1.save() casa_legislativaTest2.save() legislaturaTest1 = models.Legislatura( parlamentar=parlamentarTest1, casa_legislativa=casa_legislativaTest1, inicio='2004-01-01', fim='2012-07-01', partido=partidoTest1, localidade='PB') legislaturaTest1.save() proposicaoTest1 = models.Proposicao() proposicaoTest1.id_prop = '5555' proposicaoTest1.sigla = 'PL' proposicaoTest1.numero = '4520' proposicaoTest1.casa_legislativa = casa_legislativaTest1 proposicaoTest1.save() votacaoTest1 = models.Votacao(id_vot=' 12345', descricao='Teste da votacao', data='1900-12-05', resultado='Teste', proposicao=proposicaoTest1) votacaoTest1.save() votoTest1 = models.Voto(votacao=votacaoTest1, legislatura=legislaturaTest1, opcao='TESTE') votoTest1.save() #Exportando dados do mock para os xml exportar.serialize_partido() exportar.serialize_parlamentar() exportar.serialize_casa_legislativa() exportar.serialize_legislatura() exportar.serialize_proposicao() exportar.serialize_votacao() exportar.serialize_voto() #Deletando os registros do mock partidoTest1.delete() partidoTest2.delete() partidoTest3.delete() parlamentarTest1.delete() parlamentarTest2.delete() parlamentarTest3.delete() casa_legislativaTest1.delete() casa_legislativaTest2.delete() legislaturaTest1.delete() proposicaoTest1.delete() votacaoTest1.delete() votoTest1.delete()