remove --dot-env-path argument

This commit is contained in:
debugtalk
2018-08-23 11:52:39 +08:00
parent c0c170a355
commit 0648ee9bf6
7 changed files with 23 additions and 40 deletions
-1
View File
@@ -12,4 +12,3 @@ logs/%
.coverage .coverage
locustfile.py locustfile.py
site/ site/
.env
-5
View File
@@ -18,7 +18,6 @@ class HttpRunner(object):
resultclass (class): HtmlTestResult or TextTestResult resultclass (class): HtmlTestResult or TextTestResult
failfast (bool): False/True, stop the test run on the first error or failure. failfast (bool): False/True, stop the test run on the first error or failure.
dot_env_path (str): .env file path.
http_client_session (instance): requests.Session(), or locust.client.Session() instance. http_client_session (instance): requests.Session(), or locust.client.Session() instance.
Attributes: Attributes:
@@ -46,10 +45,6 @@ class HttpRunner(object):
""" """
loader.reset_loader() loader.reset_loader()
# load .env
dot_env_path = self.kwargs.pop("dot_env_path", None)
loader.load_dot_env_file(dot_env_path)
# load api/testcase definition and debugtalk.py module # load api/testcase definition and debugtalk.py module
project_folder_path = os.path.join(os.getcwd(), "tests") # TODO: remove tests project_folder_path = os.path.join(os.getcwd(), "tests") # TODO: remove tests
loader.load_project_tests(project_folder_path) loader.load_project_tests(project_folder_path)
+1 -4
View File
@@ -39,9 +39,6 @@ def main_hrun():
parser.add_argument( parser.add_argument(
'--log-file', '--log-file',
help="Write logs to specified file path.") help="Write logs to specified file path.")
parser.add_argument(
'--dot-env-path',
help="Specify .env file path, which is useful for keeping production credentials.")
parser.add_argument( parser.add_argument(
'--failfast', action='store_true', default=False, '--failfast', action='store_true', default=False,
help="Stop the test run on the first error or failure.") help="Stop the test run on the first error or failure.")
@@ -78,7 +75,7 @@ def main_hrun():
create_scaffold(project_path) create_scaffold(project_path)
exit(0) exit(0)
runner = HttpRunner(failfast=args.failfast, dot_env_path=args.dot_env_path).run(args.testset_paths) runner = HttpRunner(failfast=args.failfast).run(args.testset_paths)
if not args.no_html_report: if not args.no_html_report:
runner.gen_html_report( runner.gen_html_report(
+9 -15
View File
@@ -22,6 +22,7 @@ project_mapping = {
""" """
testcases_cache_mapping = {} testcases_cache_mapping = {}
project_working_directory = os.getcwd()
############################################################################### ###############################################################################
@@ -156,12 +157,8 @@ def load_folder_files(folder_path, recursive=True):
return file_list return file_list
def load_dot_env_file(path): def load_dot_env_file():
""" load .env file """ load .env file, .env file should be located in project working directory.
Args:
path (str): .env file path.
If path is None, it will find .env file in current working directory.
Returns: Returns:
dict: environment variables mapping dict: environment variables mapping
@@ -173,18 +170,13 @@ def load_dot_env_file(path):
} }
Raises: Raises:
exceptions.FileNotFound: If specified env file is not exist.
exceptions.FileFormatError: If env file format is invalid. exceptions.FileFormatError: If env file format is invalid.
""" """
if not path: path = os.path.join(project_working_directory, ".env")
path = os.path.join(os.getcwd(), ".env") if not os.path.isfile(path):
if not os.path.isfile(path): logger.log_debug(".env file not exist in : {}".format(project_working_directory))
logger.log_debug(".env file not exist: {}".format(path)) return {}
return {}
else:
if not os.path.isfile(path):
raise exceptions.FileNotFound("env file not exist: {}".format(path))
logger.log_info("Loading environment variables from {}".format(path)) logger.log_info("Loading environment variables from {}".format(path))
env_variables_mapping = {} env_variables_mapping = {}
@@ -910,6 +902,8 @@ def load_project_tests(folder_path):
load_builtin_module() load_builtin_module()
load_api_folder(os.path.join(folder_path, "api")) load_api_folder(os.path.join(folder_path, "api"))
load_test_folder(os.path.join(folder_path, "suite")) load_test_folder(os.path.join(folder_path, "suite"))
# load .env
load_dot_env_file()
def load_testcases(path): def load_testcases(path):
View File
-8
View File
@@ -339,14 +339,6 @@ class TestHttpRunner(ApiServerUnittest):
self.assertIn("in", summary["details"][0]["in_out"]) self.assertIn("in", summary["details"][0]["in_out"])
self.assertIn("out", summary["details"][0]["in_out"]) self.assertIn("out", summary["details"][0]["in_out"])
def test_loader(self):
hrunner = HttpRunner(dot_env_path="tests/data/test.env")
self.assertEqual(hrunner.project_mapping["env"]["PROJECT_KEY"], "ABCDEFGH")
self.assertIn("debugtalk", hrunner.project_mapping)
self.assertIn("setup_and_reset", hrunner.project_mapping["def-testcase"])
self.assertIn("get_token", hrunner.project_mapping["def-api"])
self.assertIn("setup_and_reset", hrunner.project_mapping["def-testcase"])
def test_load_tests(self): def test_load_tests(self):
testcase_file_path = os.path.join( testcase_file_path = os.path.join(
os.getcwd(), 'tests/data/demo_testcase.yml') os.getcwd(), 'tests/data/demo_testcase.yml')
+13 -7
View File
@@ -133,13 +133,18 @@ class TestFileLoader(unittest.TestCase):
self.assertEqual([], files) self.assertEqual([], files)
def test_load_dot_env_file(self): def test_load_dot_env_file(self):
env_variables_mapping = loader.load_dot_env_file("tests/data/test.env") loader.project_working_directory = os.path.join(
os.getcwd(), "tests",
)
env_variables_mapping = loader.load_dot_env_file()
self.assertIn("PROJECT_KEY", env_variables_mapping) self.assertIn("PROJECT_KEY", env_variables_mapping)
self.assertEqual(env_variables_mapping["UserName"], "debugtalk") self.assertEqual(env_variables_mapping["UserName"], "debugtalk")
def test_load_env_path_not_exist(self): def test_load_env_path_not_exist(self):
with self.assertRaises(exceptions.FileNotFound): loader.project_working_directory = os.path.join(
loader.load_dot_env_file("not_exist.env") os.getcwd(), "tests", "data",
)
loader.load_dot_env_file()
def test_locate_file(self): def test_locate_file(self):
with self.assertRaises(exceptions.FileNotFound): with self.assertRaises(exceptions.FileNotFound):
@@ -166,7 +171,7 @@ class TestFileLoader(unittest.TestCase):
"tests/debugtalk.py" "tests/debugtalk.py"
) )
self.assertEqual( self.assertEqual(
loader.locate_file("tests/data/test.env", "debugtalk.py"), loader.locate_file("tests/data/demo_testcase.yml", "debugtalk.py"),
"tests/debugtalk.py" "tests/debugtalk.py"
) )
@@ -478,10 +483,11 @@ class TestSuiteLoader(unittest.TestCase):
) )
def test_load_project_tests(self): def test_load_project_tests(self):
project_dir = os.path.join(os.getcwd(), "tests") loader.project_working_directory = os.path.join(os.getcwd(), "tests")
loader.load_project_tests(project_dir) loader.load_project_tests(loader.project_working_directory)
loader.load_debugtalk_module(project_dir) loader.load_debugtalk_module(loader.project_working_directory)
project_mapping = loader.project_mapping project_mapping = loader.project_mapping
self.assertEqual(project_mapping["debugtalk"]["variables"]["SECRET_KEY"], "DebugTalk") self.assertEqual(project_mapping["debugtalk"]["variables"]["SECRET_KEY"], "DebugTalk")
self.assertIn("get_token", project_mapping["def-api"]) self.assertIn("get_token", project_mapping["def-api"])
self.assertIn("setup_and_reset", project_mapping["def-testcase"]) self.assertIn("setup_and_reset", project_mapping["def-testcase"])
self.assertEqual(project_mapping["env"]["PROJECT_KEY"], "ABCDEFGH")