Alan Conway wrote:
I've started a python framework for writing tests that start/stop multiple brokers, in particular for cluster tests but could be used for federation tests etc. The framework is in python/qpid/brokertest.py, example of use in cpp/src/tests/cluster_tests.py

Features include:
 - separate working dir for each test, named after the test.
- brokers are named, each broker has own data dir and log files under test dir - easy to start brokers, clusters and other executables (e.g. the cluster_tests use the sender/receiver binaries)
 - unique cluster names, can run multiple instances  on the same subnet
- kills all started processes during teardown, verifies that status matches test expectation (exit ok, exit failure or still running) - can register other resources for cleanup on teardown - currently anything with a stop() method but we can easily extend that. - some convenience methods for declaring queues, sending/receiving messages using the new python API, this set will grow

I'll be using this for cluster testing I'll be happy to help anyone who wants to use it for other purposes, contributions welcome!

This sounds like some really useful stuff, and I look forward to playing with it, but one issue I think we need to sort out is its location, or possibly just the general use of the python/qpid dir.

Unfortunately the python/qpid directory is becoming a bit of a dumping ground for anything that happens to be written in python, when really it started out as the home of the python AMQP client. This makes it rather difficult to generate correct API-docs as random non-public utilities can easily slip in. As you can imagine it also makes it difficult to write a proper README for the directory.

So I think we need to make a bit of a decision on what the python directory is for. If we want to keep it as a place for anything that happens to be written in python then I need to move the python client elsewhere, and if we want to decide that the python client stays here, then we need to be a bit more disciplined about checking in code that isn't directly part of the python client.

Personally I think the top level division by language is showing its limitations, and we should probably have some additional top level locations for generically useful stuff like this to live, e.g. an area for project-wide testing stuff that isn't really related to one particular language silo.

--Rafael

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to