Skip to content

Commit 2744c8a

Browse files
authored
Merge pull request scylladb#42 from riptano/fix-test-policies-prime-queries
Fix multiple prime queries in tests
2 parents 97978cb + 6dc81da commit 2744c8a

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

tests/integration/simulacron/test_policies.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
import unittest # noqa
1818

1919
from cassandra import OperationTimedOut, WriteTimeout
20-
from cassandra.cluster import Cluster, ExecutionProfile, ResponseFuture, EXEC_PROFILE_DEFAULT
20+
from cassandra.cluster import Cluster, ExecutionProfile, ResponseFuture, EXEC_PROFILE_DEFAULT, NoHostAvailable
2121
from cassandra.query import SimpleStatement
2222
from cassandra.policies import ConstantSpeculativeExecutionPolicy, RoundRobinPolicy, RetryPolicy, WriteType
23+
from cassandra.protocol import OverloadedErrorMessage, IsBootstrappingErrorMessage, TruncateError, ServerError
2324

2425
from tests.integration import greaterthancass21, requiressimulacron, SIMULACRON_JAR, \
2526
CASSANDRA_VERSION
@@ -242,7 +243,7 @@ def on_unavailable(self, query, consistency, required_replicas, alive_replicas,
242243

243244
def on_request_error(self, query, consistency, error, retry_num):
244245
next(self.request_error)
245-
return self.IGNORE, None
246+
return self.RETHROW, None
246247

247248
def reset_counters(self):
248249
self.write_timeout = count()
@@ -429,14 +430,20 @@ def test_retry_policy_on_request_error(self):
429430
retry_policy = CounterRetryPolicy()
430431
self.set_cluster(retry_policy)
431432

432-
for e in [overloaded_error, bootstrapping_error, truncate_error, server_error]:
433+
for prime_error, exc in [
434+
(overloaded_error, OverloadedErrorMessage),
435+
(bootstrapping_error, IsBootstrappingErrorMessage),
436+
(truncate_error, TruncateError),
437+
(server_error, ServerError)]:
438+
439+
clear_queries()
433440
query_to_prime = "SELECT * from simulacron_keyspace.simulacron_table;"
434-
prime_query(query_to_prime, then=e, rows=None, column_types=None)
441+
prime_query(query_to_prime, then=prime_error, rows=None, column_types=None)
435442
rf = self.session.execute_async(query_to_prime)
436-
try:
443+
444+
with self.assertRaises(exc):
437445
rf.result()
438-
except:
439-
pass
446+
440447
self.assertEqual(len(rf.attempted_hosts), 1) # no retry
441448

442449
self.assertEqual(next(retry_policy.request_error), 4)
@@ -446,11 +453,12 @@ def test_retry_policy_on_request_error(self):
446453
self.set_cluster(retry_policy)
447454

448455
for e in [overloaded_error, bootstrapping_error, truncate_error, server_error]:
456+
clear_queries()
449457
query_to_prime = "SELECT * from simulacron_keyspace.simulacron_table;"
450458
prime_query(query_to_prime, then=e, rows=None, column_types=None)
451459
rf = self.session.execute_async(query_to_prime)
452-
try:
460+
461+
with self.assertRaises(NoHostAvailable):
453462
rf.result()
454-
except:
455-
pass
463+
456464
self.assertEqual(len(rf.attempted_hosts), 3) # all 3 nodes failed

0 commit comments

Comments
 (0)