I'm writing unit tests for a portion of an application that runs as an HTTP server.  The approach I have been trying to take is to import the module that contains the HTTP server, start it.  Then, the unit tests will use urllib2 to connect, send data, and check the response.
Our HTTP server is using Twisted.  One problem here is that I'm just not that familiar with Twisted :)
Now, I instantiate our HTTP server and start it in the setUp() method and then I stop it in the tearDown() method.
Problem is, Twisted doesn't appear to like this, and it will only run one unit test.  After the first one, the reactor won't start anymore.
I've searched and searched and searched, and I just can't seem to find an answer that makes sense.
Am I taking the wrong approach entirely, or just missing something obvious?
As others mentioned, you should be using Trial for unit tests in Twisted.
You also should be unit testing from the bottom up - that's what the "unit" in unit testing implies.  Test your data and logic before you test your interface.  For a HTTP interface, you should be calling processGET, processPOST, etc with a mock request, but you should only be doing this after you've tested what these methods are calling.  Each test should assume that the units tested elsewhere are working as designed.
If you're speaking HTTP, or you need a running server or other state, you're probably making higher level tests such as functional or integration tests.  This isn't a bad thing, but you might want to rephrase your question.
Python - Twisted and Unit Tests