From bb199bd42eb09df70e916ad46e14efebb1acbfd3 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 20 Jun 2017 13:25:59 +0800 Subject: [PATCH] run api_server in multiprocessing.Thread other than gevent.pywsgi.WSGIServer --- test/__init__.py | 2 -- test/test_apiserver.py | 30 +++++++++++------------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/test/__init__.py b/test/__init__.py index 91d07df5..e69de29b 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -1,2 +0,0 @@ -from gevent import monkey -monkey.patch_all() \ No newline at end of file diff --git a/test/test_apiserver.py b/test/test_apiserver.py index fc4aa27c..14320ab0 100644 --- a/test/test_apiserver.py +++ b/test/test_apiserver.py @@ -1,7 +1,7 @@ -import gevent -import gevent.pywsgi -import requests +import multiprocessing +import time import unittest +import requests from . import api_server class TestApiServer(unittest.TestCase): @@ -10,16 +10,17 @@ class TestApiServer(unittest.TestCase): """ def setUp(self): super(TestApiServer, self).setUp() - self._api_server = gevent.pywsgi.WSGIServer(("127.0.0.1", 0), api_server.app, log=None) - gevent.spawn(lambda: self._api_server.serve_forever()) - gevent.sleep(0.01) - self.host = "http://127.0.0.1:%i" % self._api_server.server_port + self.api_server_process = multiprocessing.Process( + target=api_server.app.run + ) + self.api_server_process.start() + time.sleep(0.1) + self.host = "http://127.0.0.1:5000" self.api_client = requests.Session() def tearDown(self): super(TestApiServer, self).tearDown() - self._api_server.stop_accepting() - self._api_server.stop() + self.api_server_process.terminate() def clear_users(self): url = "%s/api/users" % self.host @@ -59,24 +60,21 @@ class TestApiServer(unittest.TestCase): self.assertEqual(True, resp.json()['success']) def test_create_user_not_existed(self): - self.clear_users() resp = self.create_user(1000, 'user1', '123456') self.assertEqual(201, resp.status_code) + self.assertEqual(True, resp.json()['success']) def test_create_user_existed(self): - self.clear_users() resp = self.create_user(1000, 'user1', '123456') resp = self.create_user(1000, 'user1', '123456') self.assertEqual(500, resp.status_code) def test_get_users_empty(self): - self.clear_users() resp = self.get_users() self.assertEqual(200, resp.status_code) self.assertEqual(resp.json()['count'], 0) def test_get_users_not_empty(self): - self.clear_users() resp = self.create_user(1000, 'user1', '123456') resp = self.get_users() self.assertEqual(200, resp.status_code) @@ -88,39 +86,33 @@ class TestApiServer(unittest.TestCase): self.assertEqual(resp.json()['count'], 2) def test_get_user_not_existed(self): - self.clear_users() resp = self.get_user(1000) self.assertEqual(404, resp.status_code) self.assertEqual(resp.json()['success'], False) def test_get_user_existed(self): - self.clear_users() self.create_user(1000, 'user1', '123456') resp = self.get_user(1000) self.assertEqual(200, resp.status_code) self.assertEqual(resp.json()['success'], True) def test_update_user_not_existed(self): - self.clear_users() resp = self.update_user(1000, 'user1', '123456') self.assertEqual(404, resp.status_code) self.assertEqual(resp.json()['success'], False) def test_update_user_existed(self): - self.clear_users() self.create_user(1000, 'user1', '123456') resp = self.update_user(1000, 'user2', '123456') self.assertEqual(200, resp.status_code) self.assertEqual(resp.json()['data']['name'], 'user2') def test_delete_user_not_existed(self): - self.clear_users() resp = self.delete_user(1000) self.assertEqual(404, resp.status_code) self.assertEqual(resp.json()['success'], False) def test_delete_user_existed(self): - self.clear_users() self.create_user(1000, 'leo', '123456') resp = self.delete_user(1000) self.assertEqual(200, resp.status_code)