def check(cls, username, password): try: db = Database(app.config['WEBSTORE_SERVER'], app.config.get('WEBSTORE_USER'), app.config.get('WEBSTORE_DB', 'helmut'), http_user=username, http_password=password) db.tables() # request to trigger auth return User(username, password) except WebstoreClientException: return None
def pega_dados(url_base): database = Database('0.0.0.0', 'test', 'joaopessoa131', port="5000") html = parse(url_base).getroot() tabela = html.cssselect(".tabelaDetalhe")[0] linhas = tabela.cssselect("tr") tabela2 = html.cssselect(".tabelaDetalhe")[2] linhas2 = tabela2.cssselect("tr") data = {} data["n_empenho"] = linhas[0].cssselect("td")[1].text data["data_empenho"] = linhas[1].cssselect("td")[1].text data["tipo_empenho"] = linhas[2].cssselect("td")[1].text data["elemento_despesas"] = linhas[3].cssselect("td")[1].text data["fonte_recurso"] = linhas[4].cssselect("td")[1].text data["fornecedor"] = linhas[5].cssselect("td")[1].text data["n_processo_pagamento"] = linhas[6].cssselect("td")[1].text data["modalidade_n_licitacao"] = linhas[7].cssselect("td")[1].text data["tipo_despesa"] = linhas[8].cssselect("td")[1].text data["historico"] = linhas[9].cssselect("td")[1].text data["valores"] = [] for linha2 in linhas2: valores = {} valores["tipo_movimento"] = linha2.cssselect("td")[0].text valores["data_movimento"] = linha2.cssselect("td")[1].text valores["parcela"] = linha2.cssselect("td")[2].text valores["valor"] = linha2.cssselect("td")[3].text data["valores"].append(valores) data["valores"] = json.dumps(data["valores"]) database['empenhos_detalhe'].writerow(data, unique_columns=['n_empenho'])
def extract(url_base, entidade, id_entidade, ano, mes): print "Getting " + entidade + " do mês " + str(mes) + " de " + str(ano) database = Database('0.0.0.0', 'test', 'joaopessoa131', port="5000") html = parse(url_base).getroot() tabela = html.cssselect(".bordatabela2")[0] linhas = tabela.cssselect("tr") linhas.pop(0) for linha in linhas: data = {} data["n_empenho"] = linha.cssselect("td")[0].text data[ "link_empenho"] = "http://www2.joaopessoa.pb.gov.br:8080/lei131/" + linha.cssselect( "td")[0].get("onclick").split("'")[1] data["data_movimentacao"] = linha.cssselect("td")[1].text data["elemento"] = linha.cssselect("td")[2].text data["tipo"] = linha.cssselect("td")[3].text data["fornecedor"] = linha.cssselect("td")[4].text data["fonte_recurso"] = linha.cssselect("td")[5].text data["valor"] = linha.cssselect("td")[6].text data["orgao"] = entidade data["id_orgao"] = id_entidade data["ano"] = str(ano) data["mes"] = str(mes) database['empenhos'].writerow(data, unique_columns=['n_empenho'])
def setUp(self): self.server_url = 'localhost' self.port = 6675 self.port = 5001 self.database = Database(self.server_url, 'test', 'test', port=self.port) self.table = self.database['test'] self.table.writerows(FIXTURES)
class WebstoreClientTestCase(unittest.TestCase): def setUp(self): self.server_url = 'localhost' self.port = 6675 self.port = 5001 self.database = Database(self.server_url, 'test', 'test', port=self.port) self.table = self.database['test'] self.table.writerows(FIXTURES) def tearDown(self): try: self.table.delete() except WebstoreClientException: pass def test_database_table_listing(self): assert 'test' in self.database.tables(), self.database.tables() assert 'foo' not in self.database.tables(), self.database.tables() def test_database_contains(self): assert 'test' in self.database, self.database.tables() assert 'foo' not in self.database, self.database.tables() def test_database_getitem(self): test = self.database['test'] assert isinstance(test, Table), test def test_table_traverse_full(self): all = list(self.table) assert len(all)==len(FIXTURES), all def test_table_traverse_filter(self): bln = list(self.table.traverse(place='Berlin')) assert len(bln)==1, bln assert bln[0]['place']=='Berlin', bln def test_table_traverse_limit(self): two = list(self.table.traverse(_limit=2)) assert len(two)==2, two def test_table_add_row(self): row = {'place': 'Tokyo', 'radiation': '5usv'} self.table.writerow(row) print self.table all = list(self.table) assert len(all)==len(FIXTURES)+1, all tok = list(self.table.traverse(place='Tokyo')) assert tok[0]['radiation']=='5usv', tok def test_table_update_row(self): row = {'place': 'Berlin', 'radiation': '5usv'} self.table.writerow(row, unique_columns=['place']) all = list(self.table) assert len(all)==len(FIXTURES), all tok = list(self.table.traverse(place='Berlin')) assert tok[0]['radiation']=='5usv', tok def test_table_delete(self): self.table.delete() assert not 'test' in self.database
def setUp(self): self.server_url = 'localhost:6675' self.database = Database(self.server_url, 'test', 'test') self.table = self.database['test'] self.table.writerows(FIXTURES)