Пример #1
0
class _TestApp(unittest.TestCase):
    def setUp(self):
        unittest.TestCase.setUp(self)
        from random import randint

        self.port = randint(10000, 20000)
        from lib.WsgiRunner import PasteThread

        self.pasteThread = PasteThread(CrawlApp(), self.port, timeout=5)
        self.assertIsNotNone(self.pasteThread.server)
        self.assertFalse(self.pasteThread.isAlive())
        self.assertTrue(self.pasteThread.server.running)
        self.pasteThread.start()
        self.assertTrue(self.pasteThread.isAlive())
        self.assertTrue(self.pasteThread.server.running)
        import time

        time.sleep(1)

    def testApiCrawl(self):
        from httplib import HTTPConnection

        http_connection = HTTPConnection("localhost", port=self.port)
        http_connection.request("GET", "/api/Crawl")
        response = http_connection.getresponse()
        info("reading body,m %d " % response.status)
        body = response.read()
        info(body)
        self.assertTrue(response.status == 500 or response.status == 404 or response.status == 200)
        self.assertGreater(len(body), 1)
        info("closing http connection")
        http_connection.close()

    def tearDown(self):
        info("shutting down PasteThread")
        self.pasteThread.shutdown()
        info("joining")
        self.pasteThread.join()
        unittest.TestCase.tearDown(self)