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()

SEE ALSO

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 details)

Uploaded Source

File details

Details for the file tcptest-0.6.0.tar.gz.

File metadata

  • Download URL: tcptest-0.6.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tcptest-0.6.0.tar.gz
Algorithm Hash digest
SHA256 155f2f882c25212c7f7543b96aa0140e14695e5ac6c17ae49f045938b6608534
MD5 cc60c943e637c58023d5644aa8aa99e4
BLAKE2b-256 1523f23983ada4db578629e5a85e75286c1f4b442db39cd70647396941474fed

See more details on using hashes here.

Supported by

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