1
0
Fork 0

More poll_query in end-to-end testing

master
Philip O'Toole 8 months ago
parent 7397486fb9
commit 252783017f

@ -73,6 +73,15 @@ def write_random_file(data, mode='w'):
f.close()
return f.name
def poll_query(node, query, exp, level='none', timeout=TIMEOUT):
deadline = time.time() + 3
while time.time() < deadline:
j = node.query(query, level=level)
if j == exp:
return
time.sleep(0.1)
raise Exception('timeout waiting expected query response')
def raise_for_status(r):
try:
r.raise_for_status()

@ -11,7 +11,7 @@ import os
import time
import unittest
from helpers import Node, Cluster, d_, deprovision_node, TIMEOUT
from helpers import Node, Cluster, d_, deprovision_node, poll_query
RQLITED_PATH = os.environ['RQLITED_PATH']
@ -192,28 +192,19 @@ class TestSingleNode(unittest.TestCase):
class TestSingleNodeLoadRestart(unittest.TestCase):
''' Test that a node can load a SQLite data set in binary format'''
def poll_query(self, node, query, exp):
deadline = time.time() + 3
while time.time() < deadline:
j = node.query(query, level='none')
if j == exp:
return
time.sleep(0.1)
raise Exception('timeout waiting for node %s to have all data' % node.node_id)
def test_load_binary(self):
self.n = Node(RQLITED_PATH, '0', raft_snap_threshold=8192, raft_snap_int="30s")
self.n.start()
n = self.n.wait_for_leader()
self.n.restore('system_test/e2e/testdata/1000-numbers.db', fmt='binary')
self.poll_query(self.n, 'SELECT COUNT(*) from test', d_("{'results': [{'values': [[1000]], 'types': ['integer'], 'columns': ['COUNT(*)']}]}"))
poll_query(self.n, 'SELECT COUNT(*) from test', d_("{'results': [{'values': [[1000]], 'types': ['integer'], 'columns': ['COUNT(*)']}]}"))
# Ensure node can restart after loading and that the data is correct.
self.n.stop()
self.n.start()
self.n.wait_for_leader()
self.n.restore('system_test/e2e/testdata/1000-numbers.db', fmt='binary')
self.poll_query(self.n, 'SELECT COUNT(*) from test', d_("{'results': [{'values': [[1000]], 'types': ['integer'], 'columns': ['COUNT(*)']}]}"))
poll_query(self.n, 'SELECT COUNT(*) from test', d_("{'results': [{'values': [[1000]], 'types': ['integer'], 'columns': ['COUNT(*)']}]}"))
def tearDown(self):
deprovision_node(self.n)

@ -1,7 +1,7 @@
#!/usr/bin/env python
import os, unittest, time
from helpers import Node, Cluster, d_, deprovision_node, copy_dir_to_temp
from helpers import Node, Cluster, d_, deprovision_node, copy_dir_to_temp, poll_query
RQLITED_PATH = os.environ['RQLITED_PATH']
TIMEOUT=20
@ -65,7 +65,7 @@ class TestUpgrade_v8_LoadChunk(unittest.TestCase):
self.n = Node(RQLITED_PATH, 'localhost:4002', api_addr='localhost:4001', raft_addr='localhost:4002', dir=dir)
self.n.start()
l = self.n.wait_for_leader()
self.assertEqual(self.n.query('SELECT COUNT(*) FROM foo', level='none'), d_("{'results': [{'values': [[1]], 'types': ['integer'], 'columns': ['COUNT(*)']}]}"))
poll_query(self.n, 'SELECT COUNT(*) FROM foo', d_("{'results': [{'values': [[1]], 'types': ['integer'], 'columns': ['COUNT(*)']}]}"))
def tearDown(self):
deprovision_node(self.n)

Loading…
Cancel
Save