From 8e3aa461aae4f380132a70f7dbc0e92e2351063e Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jul 2017 14:49:17 +0800 Subject: [PATCH] optimize Runner initialization --- ate/runner.py | 13 +++++++++---- test/test_runner.py | 5 ++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ate/runner.py b/ate/runner.py index f56c1a34..072c5b9e 100644 --- a/ate/runner.py +++ b/ate/runner.py @@ -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", {}) diff --git a/test/test_runner.py b/test/test_runner.py index bc61a166..1fd3f462 100644 --- a/test/test_runner.py +++ b/test/test_runner.py @@ -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"