Skip to content

Commit c960ade

Browse files
Improve tests, fix iter update
1 parent 8a9eff4 commit c960ade

File tree

2 files changed

+17
-20
lines changed

2 files changed

+17
-20
lines changed

tarantool/connection_pool.py

+4
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,13 @@ def update(self, new_pool):
103103

104104
if len(RW_pool) > 0:
105105
self.RW_iter = cycle(RW_pool)
106+
else:
107+
self.RW_iter = None
106108

107109
if len(RO_pool) > 0:
108110
self.RO_iter = cycle(RO_pool)
111+
else:
112+
self.RO_iter = None
109113

110114
def getnext(self, mode):
111115
if mode == Mode.RW:

test/suites/test_pool.py

+13-20
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ def test_01_roundrobin(self):
9292
self.set_cluster_ro([False, False, True, False, True])
9393
RW_ports = set([str(self.addrs[0]['port']), str(self.addrs[1]['port']), str(self.addrs[3]['port'])])
9494
RO_ports = set([str(self.addrs[2]['port']), str(self.addrs[4]['port'])])
95+
all_ports = set()
96+
for addr in self.addrs:
97+
all_ports.add(str(addr['port']))
9598

9699
conn = tarantool.ConnectionPool(addrs=self.addrs, user='test', password='test')
97100

@@ -119,37 +122,27 @@ def test_01_roundrobin(self):
119122

120123
self.assertSetEqual(PREFER_RO_ports_result, RO_ports)
121124

122-
def test_02_roundrobin_all_ro(self):
125+
# Expect PREFER_RW iterate through all instances if there are no RW.
123126
self.set_cluster_ro([True, True, True, True, True])
124-
all_ports = set()
125-
for addr in self.addrs:
126-
all_ports.add(str(addr['port']))
127-
128-
conn = tarantool.ConnectionPool(addrs=self.addrs, user='test', password='test')
127+
conn.update_ro_info()
129128

130-
# Expect PREFER_RW iterate through all instances if there are no RW.
131-
PREFER_RW_ports_result = set()
129+
PREFER_RW_ports_result_all_ro = set()
132130
for i in range(len(self.servers)):
133131
resp = conn.eval('return box.cfg.listen', mode=tarantool.Mode.PREFER_RW)
134-
PREFER_RW_ports_result.add(resp.data[0])
132+
PREFER_RW_ports_result_all_ro.add(resp.data[0])
135133

136-
self.assertSetEqual(PREFER_RW_ports_result, all_ports)
134+
self.assertSetEqual(PREFER_RW_ports_result_all_ro, all_ports)
137135

138-
def test_03_roundrobin_all_rw(self):
136+
# Expect PREFER_RO iterate through all instances if there are no RO.
139137
self.set_cluster_ro([False, False, False, False, False])
140-
all_ports = set()
141-
for addr in self.addrs:
142-
all_ports.add(str(addr['port']))
138+
conn.update_ro_info()
143139

144-
conn = tarantool.ConnectionPool(addrs=self.addrs, user='test', password='test')
145-
146-
# Expect PREFER_RO iterate through all instances if there are no RO.
147-
PREFER_RO_ports_result = set()
140+
PREFER_RO_ports_result_all_rw = set()
148141
for i in range(len(self.servers)):
149142
resp = conn.eval('return box.cfg.listen', mode=tarantool.Mode.PREFER_RO)
150-
PREFER_RO_ports_result.add(resp.data[0])
143+
PREFER_RO_ports_result_all_rw.add(resp.data[0])
151144

152-
self.assertSetEqual(PREFER_RO_ports_result, all_ports)
145+
self.assertSetEqual(PREFER_RO_ports_result_all_rw, all_ports)
153146

154147
def tearDown(self):
155148
for srv in self.servers:

0 commit comments

Comments
 (0)