Skip to main content

Testing TCP program, following the Perl's Test::TCP include memcached and redis test server.

Project description

tcptest is following Perl’s “Test::TCP”.

It has the methods like original one, but also has another TestServer implementation.

This package also includes memcached and redis test server support.

SYNOPSIS

import tcptest.memcached
import tcptest.redis
import tcptest.fluentd

# with context
with tcptest.memcached.Server() as server:
    memd = memcache.Client(['127.0.0.1:%d' % server.port])
    ...

with tcptest.redis.Server() as server:
    db = redis.Redis(host='127.0.0.1', port=server.port, db=0)
    ...

with tcptest.fluentd.Server() as server:
    import fluentd.sender
    import fluentd.event
    fluent.sender.setup('app', port=server.port)
    fluent.event.Event('follow', {'foo': 'bar'})
    fluent.event.Event('label', {'hoge': 'fuga'})
print server.logs
# [('app.follow:', {u'foo': u'bar'}), ('app.label:', {u'hoge': u'fuga'})]

# manually handling
server = tcptest.memcached.Server()
server.start()
...
server.stop()

TIPS

custom server

import tcptest

class YourTestServer(tcptest.TestServer):
    def build_command(self):
        return ('your server command', 'arg1', 'arg2', ...)

with YourTestServer() as server:
    # your server works on server.port
    ...

capture server outputs

import tcptest.redis

res = {}
with tcptest.redis.Server(res=res) as server:
    ...
stdout = res['stdout']
stderr = res['stderr']

redis options

import tcptest.redis

with tcptest.redis.Server(settings=dict(databases=4)) as server:
    ...

redis replication

import tcptest.redis

master = tcptest.redis.Server()
master.start()

slave_settings = {'slaveof': 'localhost %d' % master.port}
slave = tcptest.redis.Server(settings=slave_settings)
slave.start()

CHANGES

0.6.0 - 2015/10/29

  • Support Python3 (thanks ikegami-yukino)
  • Improve redis-server port reserve, to support redis cluster

0.5.0 - 2015/06/12

  • Improve error handling (thanks okamuuu)

0.4.0 - 2014/04/05

  • Support fluentd test server

0.3.0 - 2014/01/28

  • Update tcptest.redis
    • pass command args instead of conf file (require redis-server 2.6 or later)
    • cannot overwrite the server port

0.2.4 - 2013/07/16

  • Fix pip installation
    • Add MANIFEST.in

0.2.1-3 - 2013/05/27

  • Maintain setup.py and docs

0.2.0 - 2013/05/21

  • Support Redis test server

0.1.0 - 2013/05/21

  • First release

Travis

https://travis-ci.org/nekoya/python-tcptest.png?branch=master

Project details


Download files

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

Source Distribution

tcptest-0.6.0.tar.gz (4.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page