From 379f6a3aa740f7830fc486bc5835cd725819e3df Mon Sep 17 00:00:00 2001 From: GregBestland Date: Thu, 3 Dec 2015 13:53:19 -0600 Subject: [PATCH] Fixing timing, dependency and CL issues in tests. --- build.yaml | 1 - test-requirements.txt | 1 - .../integration/cqlengine/query/test_named.py | 27 +++++++++++++------ .../standard/test_prepared_statements.py | 3 +++ tests/integration/standard/test_query.py | 3 ++- 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/build.yaml b/build.yaml index 2f1e2f6d..49909596 100644 --- a/build.yaml +++ b/build.yaml @@ -19,7 +19,6 @@ build: export JAVA_HOME=$CCM_JAVA_HOME export PATH=$JAVA_HOME/bin:$PATH - sudo python /home/jenkins/ccm/setup.py install # Install dependencies if [[ $EVENT_LOOP_MANAGER == 'libev' ]]; then sudo apt-get install -y libev4 libev-dev diff --git a/test-requirements.txt b/test-requirements.txt index f3cc411c..50875b66 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,5 +1,4 @@ -r requirements.txt -blist scales nose mock<=1.0.1 diff --git a/tests/integration/cqlengine/query/test_named.py b/tests/integration/cqlengine/query/test_named.py index 12b02003..dbe664b3 100644 --- a/tests/integration/cqlengine/query/test_named.py +++ b/tests/integration/cqlengine/query/test_named.py @@ -17,7 +17,8 @@ try: except ImportError: import unittest # noqa -from cassandra.cqlengine import operators, connection +from cassandra import ConsistencyLevel +from cassandra.cqlengine import operators from cassandra.cqlengine.named import NamedKeyspace from cassandra.cqlengine.operators import EqualsOperator, GreaterThanOrEqualOperator from cassandra.cqlengine.query import ResultObject @@ -343,20 +344,17 @@ class TestNamedWithMV(BasicSharedKeyspaceUnitTestCase): ('jbellis', 'Checkers', 2015, 6, 20, 1200), ('jbellis', 'Chess', 2015, 6, 21, 3500), ('pcmanus', 'Chess', 2015, 1, 25, 3200)} + prepared_insert.consistency_level = ConsistencyLevel.ALL execute_concurrent_with_args(self.session, prepared_insert, parameters) # Attempt to query the data using Named Table interface # Also test filtering on mv's key_space = NamedKeyspace(ks) - table = key_space.table("scores") mv_monthly = key_space.table("monthlyhigh") - table_objects = table.objects.all() - mv_monthly_objects = mv_monthly.objects.all() mv_all_time = key_space.table("alltimehigh") - mv_all_objects = mv_all_time.objects.all() - self.assertEqual(len(table_objects), len(parameters)) - self.assertEqual(len(mv_monthly_objects), len(parameters)) - self.assertEqual(len(mv_all_objects), len(parameters)) + self.assertTrue(self.check_table_size("scores", key_space, len(parameters))) + self.assertTrue(self.check_table_size("monthlyhigh", key_space, len(parameters))) + self.assertTrue(self.check_table_size("alltimehigh", key_space, len(parameters))) filtered_mv_monthly_objects = mv_monthly.objects.filter(game='Chess', year=2015, month=6) self.assertEqual(len(filtered_mv_monthly_objects), 1) @@ -365,3 +363,16 @@ class TestNamedWithMV(BasicSharedKeyspaceUnitTestCase): filtered_mv_alltime_objects = mv_all_time.objects.filter(game='Chess') self.assertEqual(len(filtered_mv_alltime_objects), 2) self.assertEqual(filtered_mv_alltime_objects[0]['score'], 3500) + + def check_table_size(self, table_name, key_space, expected_size): + table = key_space.table(table_name) + attempts = 0 + while attempts < 10: + attempts += 1 + table_size = len(table.objects.all()) + if(table_size is not expected_size): + print("Table {0} size was {1} and was expected to be {2}".format(table_name, table_size, expected_size)) + else: + return True + + return False diff --git a/tests/integration/standard/test_prepared_statements.py b/tests/integration/standard/test_prepared_statements.py index 854caee9..4a149613 100644 --- a/tests/integration/standard/test_prepared_statements.py +++ b/tests/integration/standard/test_prepared_statements.py @@ -21,6 +21,7 @@ except ImportError: import unittest # noqa from cassandra import InvalidRequest +from cassandra import ConsistencyLevel from cassandra.cluster import Cluster from cassandra.query import PreparedStatement, UNSET_VALUE from tests.integration import get_server_versions @@ -275,6 +276,7 @@ class PreparedStatementTests(unittest.TestCase): self.assertIsInstance(prepared, PreparedStatement) bound = prepared.bind(None) + bound.consistency_level = ConsistencyLevel.ALL self.session.execute(bound) prepared = self.session.prepare( @@ -284,6 +286,7 @@ class PreparedStatementTests(unittest.TestCase): self.assertIsInstance(prepared, PreparedStatement) bound = prepared.bind(None) + bound.consistency_level = ConsistencyLevel.ALL results = self.session.execute(bound) self.assertEqual(results[0].v, 0) diff --git a/tests/integration/standard/test_query.py b/tests/integration/standard/test_query.py index 1693f171..b087031e 100644 --- a/tests/integration/standard/test_query.py +++ b/tests/integration/standard/test_query.py @@ -162,7 +162,8 @@ class QueryTests(BasicSharedKeyspaceUnitTestCase): trace = response_future._query_traces[0] # Delete trace duration from the session (this is what the driver polls for "complete") - self.session.execute("DELETE duration FROM system_traces.sessions WHERE session_id = %s", (trace.trace_id,)) + delete_statement = SimpleStatement("DELETE duration FROM system_traces.sessions WHERE session_id = {}".format(trace.trace_id), consistency_level=ConsistencyLevel.ALL) + self.session.execute(delete_statement) # should raise because duration is not set self.assertRaises(TraceUnavailable, trace.populate, max_wait=0.2, wait_for_complete=True)