Skip to main content

testing.cassandra automatically setups a cassandra instance in a temporary directory, and destroys it after testing

https://travis-ci.org/tk0miya/testing.cassandra.svg?branch=master https://coveralls.io/repos/tk0miya/testing.cassandra/badge.png?branch=master https://codeclimate.com/github/tk0miya/testing.cassandra/badges/gpa.svg

Install

Use easy_install (or pip):

$ easy_install testing.cassandra

And testing.cassandra requires Cassandra server.

Usage

Create Cassandra instance using testing.cassandra.Cassandra:

import pycassa
import testing.cassandra

# Launch new Cassandra server
with testing.cassandra.Cassandra as cassandra:
    conn = pycassa.pool.ConnectionPool('test', cassandra.server_list())
    #
    # do any tests using Cassandra...
    #

# Cassandra server is terminated here

testing.cassandra automatically searchs for cassandra files in /usr/local/. If you install cassandra to other directory, set cassandra_home keyword:

# uses a copy of specified data directory of Cassandra.
cassandra = testing.cassandra.Cassandra(copy_data_from='/path/to/your/database')

testing.cassandra.Cassandra executes cassandra on instantiation. On deleting Cassandra object, it terminates Cassandra instance and removes temporary directory.

If you want a database including column families and any fixtures for your apps, use copy_data_from keyword:

# uses a copy of specified data directory of Cassandra.
cassandra = testing.cassandra.Cassandra(copy_data_from='/path/to/your/database')

You can specify parameters for Cassandra with cassandra_yaml keyword:

# boot Cassandra server listens on 12345 port
cassandra = testing.cassandra.Cassandra(cassandra_yaml={'rpc_port': 12345})

For example, you can setup new Cassandra server for each testcases on setUp() method:

import unittest
import testing.cassandra

class MyTestCase(unittest.TestCase):
    def setUp(self):
        self.cassandra = testing.cassandra.Cassandra()

    def tearDown(self):
        self.cassandra.stop()

Requirements

  • Cassandra 1.1, 1.2, 2.0, 2.1, 2.2

  • Python 2.6, 2.7

  • pycassa

  • PyYAML

License

Apache License 2.0

History

1.2.0 (2016-02-03)

  • Add timeout to server invoker

  • Support Homebrew

  • Support Cassandra 2.x

  • Refer $CASSANDRA_HOME for search cassandra home directory

  • Depend on testing.common.database package

1.1.4 (2015-04-06)

  • Fix bugs:

    • Do not call os.getpid() on destructor (if not needed)

    • Use absolute path for which command

1.1.3 (2014-06-19)

  • Add timeout on terminating cassandra

  • Fix bugs

1.1.2 (2014-06-11)

  • Fix ImportError if caught SIGINT on py3

1.1.1 (2013-12-06)

  • Suport Cassandra 2.0.x

  • Fix Cassandra#stop() causes OSError (at destructing object)

1.1.0 (2013-12-06)

  • Support Cassandra 1.2.x

  • Support python 2.6

  • Add cassandra.skipIfNotInstalled decorator

  • Change behavior: Cassandra#stop() cleans workdir

  • Fix workdir does not removed if cassandra does not started

1.0.0 (2013-10-17)

  • First release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

testing.cassandra-1.2.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

testing.cassandra-1.2.0-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file testing.cassandra-1.2.0.tar.gz.

File metadata

File hashes

Hashes for testing.cassandra-1.2.0.tar.gz
Algorithm Hash digest
SHA256 1a0c93db79e896b8ac007a7b180b846154b2027385dddc9e6ab369b2a8badba9
MD5 c19fa5b2851bc4a7a9031571f969048d
BLAKE2b-256 a44d675b6c2e953b352b47bffc5ee924dc1b2349820ad64d132f19a4b2bed95d

See more details on using hashes here.

File details

Details for the file testing.cassandra-1.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for testing.cassandra-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e25ed34631a64cec27dcbf558afced3b080365eddfce5419145846fe0de66b0b
MD5 11ae3140557a2ec8e29a18d5531bdcb8
BLAKE2b-256 e1c5a23adb0de08663dba326baa092b576e5c68b5eafa519e9c83b9c1d04224f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

1 file

1.1.0

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page