optimize Runner initialization

This commit is contained in:
debugtalk
2017-07-07 14:49:17 +08:00
parent b7659b2ad4
commit 8e3aa461aa
2 changed files with 11 additions and 7 deletions

View File

@@ -1,3 +1,5 @@
import requests
from ate import exception, response
from ate.client import HttpSession
from ate.context import Context
@@ -5,8 +7,8 @@ from ate.context import Context
class Runner(object):
def __init__(self, base_url=None):
self.client = HttpSession(base_url)
def __init__(self, http_client_session=None):
self.http_client_session = http_client_session
self.context = Context()
def init_config(self, config_dict, level):
@@ -48,7 +50,10 @@ class Runner(object):
request_config = config_dict.get('request', {})
if level == "testset":
base_url = request_config.pop("base_url", None)
self.client = HttpSession(base_url)
self.http_client_session = self.http_client_session or HttpSession(base_url)
else:
# testcase
self.http_client_session = self.http_client_session or requests.Session()
self.context.register_request(request_config, level)
def run_test(self, testcase):
@@ -84,7 +89,7 @@ class Runner(object):
except KeyError:
raise exception.ParamsError("URL or METHOD missed!")
resp = self.client.request(url=url, method=method, **parsed_request)
resp = self.http_client_session.request(url=url, method=method, **parsed_request)
resp_obj = response.ResponseObject(resp)
extract_binds = testcase.get("extract_binds", {})

View File

@@ -6,8 +6,7 @@ from test.base import ApiServerUnittest
class TestRunner(ApiServerUnittest):
def setUp(self):
base_url = "http://127.0.0.1:5000"
self.test_runner = runner.Runner(base_url)
self.test_runner = runner.Runner()
self.clear_users()
def clear_users(self):
@@ -32,7 +31,7 @@ class TestRunner(ApiServerUnittest):
testcase = {
"name": "create user which does not exist",
"request": {
"url": "/api/users/1000",
"url": "http://127.0.0.1:5000/api/users/1000",
"method": "POST",
"headers": {
"content-type": "application/json"