From 526b1fcbc921a8703cf9a095d0ca80a264d8cb7f Mon Sep 17 00:00:00 2001 From: debugtalk Date: Mon, 1 Jun 2020 11:56:16 +0800 Subject: [PATCH] change: refactor Request interface --- .../request_with_functions_test.py | 9 ++--- httprunner/runner.py | 38 +++++++++++++------ httprunner/schema.py | 2 - 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/examples/postman_echo/request_methods/request_with_functions_test.py b/examples/postman_echo/request_methods/request_with_functions_test.py index 78a4ac4f..1cf03711 100644 --- a/examples/postman_echo/request_methods/request_with_functions_test.py +++ b/examples/postman_echo/request_methods/request_with_functions_test.py @@ -21,8 +21,7 @@ class TestCaseRequestWithFunctions(HttpRunner): .set_variables(foo1="bar1", foo2="session_bar2", sum_v="${sum_two(1, 2)}") .run_request( Request() - .set_method("GET") - .set_url("/get") + .get("/get") .set_params(foo1="$foo1", foo2="$foo2", sum_v="$sum_v") .set_headers(**{"User-Agent": "HttpRunner/${get_httprunner_version()}"}) ) @@ -36,8 +35,7 @@ class TestCaseRequestWithFunctions(HttpRunner): .set_variables(foo1="hello world", foo3="$session_foo2") .run_request( Request() - .set_method("POST") - .set_url("/post") + .post("/post") .set_headers( **{ "User-Agent": "HttpRunner/${get_httprunner_version()}", @@ -58,8 +56,7 @@ class TestCaseRequestWithFunctions(HttpRunner): .set_variables(**{"foo1": "bar1", "foo2": "bar2"}) .run_request( Request() - .set_method("POST") - .set_url("/post") + .post("/post") .set_headers( **{ "User-Agent": "HttpRunner/${get_httprunner_version()}", diff --git a/httprunner/runner.py b/httprunner/runner.py index a658e561..e2fb9413 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -31,6 +31,7 @@ from httprunner.schema import ( ProjectMeta, TestCase, TRequest, + MethodEnum, ) @@ -69,21 +70,36 @@ class Config(object): class Request(object): - def __init__(self): - self.__method = "GET" - self.__url = "" + def get(self, url): + return RequestOptionalArgs(MethodEnum.GET, url) + + def post(self, url): + return RequestOptionalArgs(MethodEnum.POST, url) + + def put(self, url): + return RequestOptionalArgs(MethodEnum.PUT, url) + + def head(self, url): + return RequestOptionalArgs(MethodEnum.HEAD, url) + + def delete(self, url): + return RequestOptionalArgs(MethodEnum.DELETE, url) + + def options(self, url): + return RequestOptionalArgs(MethodEnum.OPTIONS, url) + + def patch(self, url): + return RequestOptionalArgs(MethodEnum.PATCH, url) + + +class RequestOptionalArgs(object): + def __init__(self, method: MethodEnum, url: Text): + self.__method = method + self.__url = url self.__params = {} self.__headers = {} self.__data = "" - def set_method(self, method): - self.__method = method - return self - - def set_url(self, url): - self.__url = url - return self - def set_params(self, **params): self.__params.update(params) return self diff --git a/httprunner/schema.py b/httprunner/schema.py index 217d294d..60b88cd7 100644 --- a/httprunner/schema.py +++ b/httprunner/schema.py @@ -29,8 +29,6 @@ class MethodEnum(Text, Enum): HEAD = "HEAD" OPTIONS = "OPTIONS" PATCH = "PATCH" - CONNECT = "CONNECT" - TRACE = "TRACE" class TConfig(BaseModel):