1
0
Fork 0

Merge branch 'master' of github.com:rqlite/rqlite into protos-all-way-down

master
Philip O'Toole 3 years ago
commit 2cfe26ec5d

@ -248,12 +248,18 @@ class Node(object):
t+=1 t+=1
return self.fsm_index() return self.fsm_index()
def query(self, statement, params=None, level='weak'): def query(self, statement, params=None, level='weak', pretty=False):
body = [statement] body = [statement]
if params is not None: if params is not None:
body = [body + params] body = [body + params]
r = requests.post(self._query_url(), params={'level': level}, data=json.dumps(body))
reqParams = {'level': level}
if pretty:
reqParams['pretty'] = "yes"
r = requests.post(self._query_url(), params=reqParams, data=json.dumps(body))
r.raise_for_status() r.raise_for_status()
if pretty:
return r.text
return r.json() return r.json()
def execute(self, statement, params=None): def execute(self, statement, params=None):
@ -361,6 +367,37 @@ class TestSingleNode(unittest.TestCase):
j = n.query('SELECT * from bar') j = n.query('SELECT * from bar')
self.assertEqual(str(j), "{u'results': [{u'values': [[1, u'fiona']], u'types': [u'integer', u'text'], u'columns': [u'id', u'name']}]}") self.assertEqual(str(j), "{u'results': [{u'values': [[1, u'fiona']], u'types': [u'integer', u'text'], u'columns': [u'id', u'name']}]}")
def test_simple_raw_queries_pretty(self):
'''Test simple queries, requesting pretty output, work as expected'''
n = self.cluster.wait_for_leader()
j = n.execute('CREATE TABLE bar (id INTEGER NOT NULL PRIMARY KEY, name TEXT)')
self.assertEqual(str(j), "{u'results': [{}]}")
j = n.execute('INSERT INTO bar(name) VALUES("fiona")')
applied = n.wait_for_all_fsm()
self.assertEqual(str(j), "{u'results': [{u'last_insert_id': 1, u'rows_affected': 1}]}")
j = n.query('SELECT * from bar', pretty=True)
exp = '''{
"results": [
{
"columns": [
"id",
"name"
],
"types": [
"integer",
"text"
],
"values": [
[
1,
"fiona"
]
]
}
]
}'''
self.assertEqual(str(j), exp)
def test_simple_parameterized_queries(self): def test_simple_parameterized_queries(self):
'''Test parameterized queries work as expected''' '''Test parameterized queries work as expected'''
n = self.cluster.wait_for_leader() n = self.cluster.wait_for_leader()

Loading…
Cancel
Save