Remove Thrift Python tests (moved to dtests since CASSANDRA-5687)
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/abd1baee Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/abd1baee Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/abd1baee Branch: refs/heads/cassandra-2.1.0 Commit: abd1baeeadf82c4f5735f2c1ef6fe0e734a5f4c0 Parents: 1d744b5 Author: Aleksey Yeschenko <[email protected]> Authored: Tue Aug 12 00:11:34 2014 +0300 Committer: Aleksey Yeschenko <[email protected]> Committed: Tue Aug 12 00:11:34 2014 +0300 ---------------------------------------------------------------------- test/system/__init__.py | 184 --- test/system/test_thrift_server.py | 2079 -------------------------------- 2 files changed, 2263 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/abd1baee/test/system/__init__.py ---------------------------------------------------------------------- diff --git a/test/system/__init__.py b/test/system/__init__.py deleted file mode 100644 index 669bf6d..0000000 --- a/test/system/__init__.py +++ /dev/null @@ -1,184 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os, sys, time, signal, httplib, errno, uuid - -__all__ = ['root', 'thrift_client'] - -from thrift.transport import TTransport -from thrift.transport import TSocket -from thrift.transport import THttpClient -from thrift.protocol import TBinaryProtocol - -# add cassandra directory to sys.path -L = os.path.abspath(__file__).split(os.path.sep)[:-3] -root = os.path.sep.join(L) -_ipath = os.path.join(root, 'interface', 'thrift', 'gen-py') -sys.path.append(os.path.join(_ipath, 'cassandra')) -import Cassandra - -def get_thrift_client(host='127.0.0.1', port=9170): - socket = TSocket.TSocket(host, port) - transport = TTransport.TFramedTransport(socket) - protocol = TBinaryProtocol.TBinaryProtocol(transport) - client = Cassandra.Client(protocol) - client.transport = transport - return client -thrift_client = get_thrift_client() - -pid_fname = "system_test.pid" -def pid(): - return int(open(pid_fname).read()) - -class BaseTester(object): - # leave this True unless you are manually starting a server and then - # running only a single test against it; tests assume they start - # against an empty db. - runserver = True - client = None - extra_args = [] - - def open_client(self): - raise NotImplementedError() - - def close_client(self): - raise NotImplementedError() - - def define_schema(self): - raise NotImplementedError() - - def setUp(self): - if self.runserver: - if os.path.exists(pid_fname): - pid_path = os.path.join(root, pid_fname) - print "Unclean shutdown detected, (%s found)" % pid_path - raise Exception('damn it') - - # clean out old stuff - import shutil - # todo get directories from conf/cassandra.yaml - for dirname in ['system', 'data', 'commitlog']: - try: - shutil.rmtree(os.path.join(root, 'build', 'test', 'cassandra', dirname)) - except OSError: - pass - # start the server - import subprocess as sp - os.chdir(root) - os.environ['CASSANDRA_INCLUDE'] = 'test/cassandra.in.sh' - args = ['bin/cassandra', '-p', pid_fname] + self.extra_args - process = sp.Popen(args, stderr=sp.PIPE, stdout=sp.PIPE) - time.sleep(0.1) - - # connect to it, with a timeout in case something went wrong - start = time.time() - while time.time() < start + 10: - try: - self.open_client() - except: - time.sleep(0.1) - else: - break - else: - print "Couldn't connect to server; aborting regression test" - # see if process is still alive - process.poll() - - if process.returncode is None: - os.kill(pid(), signal.SIGKILL) # just in case - else: - stdout_value, stderr_value = process.communicate() - print "Stdout: %s" % (stdout_value) - print "Stderr: %s" % (stderr_value) - raise Exception('damn it') - else: - try: - self.open_client() - except: - pass - - self.define_schema() - - def tearDown(self): - def is_alive(pid): - try: - os.kill(pid, 0) - return 1 - except OSError, err: - return err.errno == errno.EPERM - - if self.runserver: - spid = pid() - max_wait = 1 - self.close_client() - open('/tmp/kill', 'w').write('killing %s\n' % spid) - os.kill(spid, signal.SIGTERM) - slept = 0 - while (slept < max_wait): - time.sleep(0.5) - if not is_alive(spid): - break - slept += 0.5 - # Give time for cassandra to shutdown - time.sleep(2) - if (slept > max_wait and is_alive(spid)): - os.kill(spid, signal.SIGKILL) - fpath = os.path.join(root, pid_fname) - if os.path.exists(fpath): os.unlink(fpath) - raise Exception('Server did not shutdown correctly') - -class ThriftTester(BaseTester): - client = thrift_client - - def open_client(self): - self.client.transport.open() - - def close_client(self): - self.client.transport.close() - - def define_schema(self): - keyspace1 = Cassandra.KsDef('Keyspace1', 'org.apache.cassandra.locator.SimpleStrategy', {'replication_factor':'1'}, - cf_defs=[ - Cassandra.CfDef('Keyspace1', 'Standard1'), - Cassandra.CfDef('Keyspace1', 'Standard2'), - Cassandra.CfDef('Keyspace1', 'StandardLong1', comparator_type='LongType'), - Cassandra.CfDef('Keyspace1', 'StandardLong2', comparator_type='LongType'), - Cassandra.CfDef('Keyspace1', 'StandardInteger1', comparator_type='IntegerType'), - Cassandra.CfDef('Keyspace1', 'Super1', column_type='Super', subcomparator_type='LongType'), - Cassandra.CfDef('Keyspace1', 'Super2', column_type='Super', subcomparator_type='LongType'), - Cassandra.CfDef('Keyspace1', 'Super3', column_type='Super', subcomparator_type='LongType'), - Cassandra.CfDef('Keyspace1', 'Super4', column_type='Super', subcomparator_type='UTF8Type'), - Cassandra.CfDef('Keyspace1', 'Super5', column_type='Super', comparator_type='LongType', subcomparator_type='UTF8Type'), - Cassandra.CfDef('Keyspace1', 'Counter1', default_validation_class='CounterColumnType'), - Cassandra.CfDef('Keyspace1', 'SuperCounter1', column_type='Super', default_validation_class='CounterColumnType'), - Cassandra.CfDef('Keyspace1', 'Indexed1', column_metadata=[Cassandra.ColumnDef('birthdate', 'LongType', Cassandra.IndexType.KEYS, 'birthdate_index')]), - Cassandra.CfDef('Keyspace1', 'Indexed2', comparator_type='TimeUUIDType', column_metadata=[Cassandra.ColumnDef(uuid.UUID('00000000-0000-1000-0000-000000000000').bytes, 'LongType', Cassandra.IndexType.KEYS)]), - Cassandra.CfDef('Keyspace1', 'Indexed3', comparator_type='TimeUUIDType', column_metadata=[Cassandra.ColumnDef(uuid.UUID('00000000-0000-1000-0000-000000000000').bytes, 'UTF8Type', Cassandra.IndexType.KEYS)]), - - ]) - - keyspace2 = Cassandra.KsDef('Keyspace2', 'org.apache.cassandra.locator.SimpleStrategy', {'replication_factor':'1'}, - cf_defs=[ - Cassandra.CfDef('Keyspace2', 'Standard1'), - Cassandra.CfDef('Keyspace2', 'Standard3'), - Cassandra.CfDef('Keyspace2', 'Super3', column_type='Super', subcomparator_type='BytesType'), - Cassandra.CfDef('Keyspace2', 'Super4', column_type='Super', subcomparator_type='TimeUUIDType'), - ]) - - for ks in [keyspace1, keyspace2]: - self.client.system_add_keyspace(ks) - -# vim:ai sw=4 ts=4 tw=0 et
