fix #343: locate debugtalk.py and use as project working directory

This commit is contained in:
httprunner
2018-08-23 13:03:42 +08:00
parent 5e2159b097
commit 98ada8c84f
8 changed files with 70 additions and 68 deletions

View File

@@ -2,7 +2,7 @@ import os
import shutil
import time
from httprunner import HttpRunner, LocustRunner
from httprunner import HttpRunner, LocustRunner, loader
from locust import HttpLocust
from tests.api_server import HTTPBIN_SERVER
from tests.base import ApiServerUnittest
@@ -89,7 +89,7 @@ class TestHttpRunner(ApiServerUnittest):
self.assertEqual(summary["stat"]["skipped"], 4)
runner.gen_html_report(html_report_name=output_folder_name)
report_save_dir = os.path.join(os.getcwd(), 'reports', output_folder_name)
report_save_dir = os.path.join(loader.project_working_directory, 'reports', output_folder_name)
self.assertGreater(len(os.listdir(report_save_dir)), 0)
shutil.rmtree(report_save_dir)
@@ -155,7 +155,7 @@ class TestHttpRunner(ApiServerUnittest):
output_folder_name = os.path.basename(os.path.splitext(testset_path)[0])
report = runner.gen_html_report(html_report_name=output_folder_name)
self.assertTrue(os.path.isfile(report))
report_save_dir = os.path.join(os.getcwd(), 'reports', output_folder_name)
report_save_dir = os.path.join(loader.project_working_directory, 'reports', output_folder_name)
shutil.rmtree(report_save_dir)
def test_testcase_layer(self):

View File

@@ -9,9 +9,7 @@ from tests.base import ApiServerUnittest
class TestContext(ApiServerUnittest):
def setUp(self):
project_dir = os.path.join(os.getcwd(), "tests")
loader.load_project_tests(project_dir)
loader.load_debugtalk_module(project_dir)
loader.load_project_tests(os.path.join(os.getcwd(), "tests"))
self.debugtalk_module = loader.project_mapping["debugtalk"]
self.context = context.Context(

View File

@@ -185,15 +185,13 @@ class TestModuleLoader(unittest.TestCase):
self.assertNotIn("is_py3", functions_dict)
def test_load_debugtalk_module(self):
project_dir = os.path.join(os.getcwd(), "tests")
loader.load_project_tests(project_dir)
loader.load_debugtalk_module()
loader.load_project_tests(os.path.join(os.getcwd(), "httprunner"))
imported_module_items = loader.project_mapping["debugtalk"]
self.assertIn("equals", imported_module_items["functions"])
self.assertNotIn("SECRET_KEY", imported_module_items["variables"])
self.assertNotIn("alter_response", imported_module_items["functions"])
loader.load_debugtalk_module("tests")
loader.load_project_tests(os.path.join(os.getcwd(), "tests"))
imported_module_items = loader.project_mapping["debugtalk"]
self.assertEqual(
imported_module_items["variables"]["SECRET_KEY"],
@@ -228,13 +226,22 @@ class TestModuleLoader(unittest.TestCase):
with self.assertRaises(exceptions.VariableNotFound):
loader.get_module_item(module_mapping, "variables", "SECRET_KEY2")
def test_locate_pwd(self):
loader.locate_pwd("tests/data/demo_testcase.yml")
self.assertEqual(loader.project_working_directory, "tests")
loader.locate_pwd("tests/base.py")
self.assertEqual(loader.project_working_directory, "tests")
loader.locate_pwd("httprunner/__init__.py")
self.assertEqual(loader.project_working_directory, os.getcwd())
class TestSuiteLoader(unittest.TestCase):
@classmethod
def setUpClass(cls):
project_dir = os.path.join(os.getcwd(), "tests")
loader.load_project_tests(project_dir)
loader.load_project_tests(os.path.join(os.getcwd(), "tests"))
def test_load_test_file_testcase(self):
testcase = loader._load_test_file("tests/testcases/smoketest.yml")
@@ -483,9 +490,7 @@ class TestSuiteLoader(unittest.TestCase):
)
def test_load_project_tests(self):
loader.project_working_directory = os.path.join(os.getcwd(), "tests")
loader.load_project_tests(loader.project_working_directory)
loader.load_debugtalk_module(loader.project_working_directory)
loader.load_project_tests(os.path.join(os.getcwd(), "tests"))
project_mapping = loader.project_mapping
self.assertEqual(project_mapping["debugtalk"]["variables"]["SECRET_KEY"], "DebugTalk")
self.assertIn("get_token", project_mapping["def-api"])

View File

@@ -412,8 +412,7 @@ class TestParser(unittest.TestCase):
)
def test_parse_parameters_mix(self):
project_dir = os.path.join(os.getcwd(), "tests")
loader.load_debugtalk_module(project_dir)
loader.load_project_tests(os.path.join(os.getcwd(), "tests"))
project_mapping = loader.project_mapping
parameters = [

View File

@@ -10,9 +10,7 @@ from tests.base import ApiServerUnittest
class TestRunner(ApiServerUnittest):
def setUp(self):
project_dir = os.path.join(os.getcwd(), "tests")
loader.load_project_tests(project_dir)
loader.load_debugtalk_module(project_dir)
loader.load_project_tests(os.path.join(os.getcwd(), "tests"))
self.debugtalk_module = loader.project_mapping["debugtalk"]
config_dict = {
"variables": self.debugtalk_module["variables"],