Skip to main content

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

Release files for tcptest 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tcptest 0.6.0
File Size Uploaded
tcptest-0.6.0.tar.gz 4.6 kB Details

Release files / tcptest-0.6.0.tar.gz

Download URL tcptest-0.6.0.tar.gz
Size 4.6 kB
Tags Source
SHA-256 checksum
How to use checksums
155f2f882c25212c7f7543b96aa0140e14695e5ac6c17ae49f045938b6608534
BLAKE2b-256 checksum
How to use checksums
1523f23983ada4db578629e5a85e75286c1f4b442db39cd70647396941474fed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.6.0 This release

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page