From f0d6bda573ee970baaa1962016cfb1ee8465e211 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Sun, 16 Dec 2018 00:38:02 +0800 Subject: [PATCH] add unittest for running single api --- httprunner/api.py | 6 +++--- tests/httpbin/api/get_headers.yml | 8 ++++++++ tests/test_api.py | 8 ++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 tests/httpbin/api/get_headers.yml diff --git a/httprunner/api.py b/httprunner/api.py index 136aaeb0..98b383be 100644 --- a/httprunner/api.py +++ b/httprunner/api.py @@ -211,10 +211,10 @@ class HttpRunner(object): dict: valid testcase/testsuite data """ - if validator.is_testcases(path_or_tests): - return self.run_tests(path_or_tests) - elif validator.is_testcase_path(path_or_tests): + if validator.is_testcase_path(path_or_tests): return self.run_path(path_or_tests, dot_env_path, mapping) + elif validator.is_testcases(path_or_tests): + return self.run_tests(path_or_tests) else: raise exceptions.ParamsError("invalid testcase path or testcases.") diff --git a/tests/httpbin/api/get_headers.yml b/tests/httpbin/api/get_headers.yml new file mode 100644 index 00000000..7bcc32d1 --- /dev/null +++ b/tests/httpbin/api/get_headers.yml @@ -0,0 +1,8 @@ + +name: headers +request: + url: http://httpbin.org/headers + method: GET +validate: + - eq: ["status_code", 200] + - eq: [content.headers.Host, "httpbin.org"] diff --git a/tests/test_api.py b/tests/test_api.py index 38dce8d4..96a97ae6 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -279,6 +279,14 @@ class TestHttpRunner(ApiServerUnittest): self.assertFalse(summary["success"]) self.assertEqual(summary["stat"]["errors"], 1) + def test_run_api(self): + path = "tests/httpbin/api/get_headers.yml" + self.runner.run(path) + summary = self.runner.summary + self.assertTrue(summary["success"]) + self.assertEqual(summary["stat"]["testsRun"], 1) + self.assertEqual(summary["stat"]["successes"], 1) + def test_run_testcase_hardcode(self): for testcase_file_path in self.testcase_file_path_list: self.runner.run(testcase_file_path)