import argparse
import logging
+import os
from nitsi.logger import init_logging, Log_Formatter
from nitsi.recipe import RecipeExeption
import nitsi.test
-import nitsi.settings
+from nitsi.settings import settings_parse_copy_from, NitsiSettings
logger = logging.getLogger("nitsi")
parser_run_test.add_argument("-d", "--directory", dest="dir", default=None)
parser_run_test.add_argument("-r", "--recipe", dest="recipe", default=None)
parser_run_test.add_argument("-s", "--settings", dest="settings", default=None)
+ parser_run_test.add_argument("--default-settings", dest="default_settings", default=None)
parser_run_test.add_argument("--name", dest="name", default=None)
parser_run_test.add_argument("--description", dest="desc", default=None)
parser_run_test.add_argument("--copy-to", dest="copy_to", default=None)
parser_run_test.add_argument("--copy-from", dest="copy_from", default=None, nargs='+')
parser_run_test.add_argument("--virtual-environment", dest="virtual_environ_path", default=None)
+ parser_run_test.add_argument("--interactive-error-handling", dest="interactive_error_handling", default=False, action="store_true")
args = parser.parse_args()
elif args.log_level == "error":
logger.setLevel(logging.ERROR)
-
+ # Here we are going to run a test
if args.subparsers_name == "run-test":
if not (args.dir or args.recipe):
logger.error("You need to provide at least a director of a test '-d' or a recipe file '-r'")
logger.addHandler(fh)
logger.debug("We now logging everything to {}/general.log".format(log_dir))
- # Build up settings dict
- settings = {}
+ # Build up settings
+ settings = nitsi.settings.NitsiSettings(priority_list=["cmd", "settings-file", "default-settings-file", "nitsi-default"])
+
if args.name:
- settings["name"] = args.name
+ settings.set_config_value("name", args.name, type="cmd")
if args.desc:
- settings["description"] = args.desc
+ settings.set_config_value("description", args.desc, type="cmd")
if args.copy_to:
- settings["copy_to"] = args.copy_to
+ settings.set_config_value("copy_to", args.copy_to, type="cmd")
if args.copy_from:
- settings["copy_from"] = nitsi.settings.settings_parse_copy_from(args.copy_from)
+ settings.set_config_value("copy_from", nitsi.settings.settings_parse_copy_from(args.copy_from), type="cmd")
if args.virtual_environ_path:
- settings["virtual_environ_path"] = args.virtual_environ_path
+ path = args.virtual_environ_path
+ if not os.path.isabs(path):
+ path = os.path.abspath(path)
+ settings.set_config_value("virtual_environ_path", path, type="cmd")
+ if args.interactive_error_handling:
+ settings.set_config_value("interactive_error_handling", True, type="cmd")
# here we run a test
try:
dir=args.dir,
recipe_file=args.recipe,
settings_file=args.settings,
- cmd_settings=settings)
- currenttest.read_settings()
+ settings=settings,
+ default_settings_file=args.default_settings)
+ currenttest.virtual_environ_setup_stage_1()
currenttest.load_recipe()
- currenttest.virtual_environ_setup()
+ currenttest.virtual_environ_setup_stage_2()
except RecipeExeption as e:
logger.exception(e)
return 2