1
0
Fork 0

Merge pull request #805 from rqlite/redirected-join-test

Add end-to-end test of redirected join via follower
master
Philip O'Toole 3 years ago committed by GitHub
commit 9cea62ac05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,5 +1,11 @@
#!/usr/bin/env python
# End-to-end testing using actual rqlited binary.
#
# To run a specific test, execute
#
# python system_test/full_system_test.py Class.test
from __future__ import print_function
import tempfile
import argparse
@ -402,6 +408,45 @@ class TestIdempotentJoin(unittest.TestCase):
self.n1.wait_for_leader()
self.assertEqual(self.n0.num_join_requests(), 1)
class TestRedirectedJoin(unittest.TestCase):
def tearDown(self):
deprovision_node(self.n0)
deprovision_node(self.n1)
deprovision_node(self.n2)
def test(self):
'''Test that a node can join via a follower'''
self.n0 = Node(RQLITED_PATH, '0')
self.n0.start()
l0 = self.n0.wait_for_leader()
self.n1 = Node(RQLITED_PATH, '1')
self.n1.start(join=self.n0.APIAddr())
self.n1.wait_for_leader()
self.assertTrue(self.n1.is_follower())
self.n2 = Node(RQLITED_PATH, '2')
self.n2.start(join=self.n1.APIAddr())
l2 = self.n2.wait_for_leader()
self.assertEqual(l0, l2)
def test_api_adv(self):
'''Test that a node can join via a follower that advertises a different API address'''
self.n0 = Node(RQLITED_PATH, '0',
api_addr="0.0.0.0:4001", api_adv="localhost:4001")
self.n0.start()
l0 = self.n0.wait_for_leader()
self.n1 = Node(RQLITED_PATH, '1')
self.n1.start(join=self.n0.APIAddr())
self.n1.wait_for_leader()
self.assertTrue(self.n1.is_follower())
self.n2 = Node(RQLITED_PATH, '2')
self.n2.start(join=self.n1.APIAddr())
l2 = self.n2.wait_for_leader()
self.assertEqual(l0, l2)
class TestEndToEnd(unittest.TestCase):
def setUp(self):
n0 = Node(RQLITED_PATH, '0')

Loading…
Cancel
Save