# coding=utf-8 """ To support django-behave """ import os import sys def run_as_django_behave(formatter_name, feature_names, scenario_n_options): """ :param formatter_name: for "-f" argument :param feature_names: feature names or folders behave arguments :param scenario_n_options: list of ["-n", "scenario_name"] :return: True if launched as django-behave. Otherwise false and need to be launched as plain behave """ if "DJANGO_SETTINGS_MODULE" not in os.environ: return False try: import django from django.core.management import ManagementUtility from behave_django import __version__ # To make sure version exists django.setup() from django.apps import apps if apps.is_installed("behave_django"): base = sys.argv[0] sys.argv = [base] + ["behave", "-f{0}".format(formatter_name)] + feature_names + scenario_n_options print("manage.py " + " ".join(sys.argv[1:])) ManagementUtility().execute() return True except ImportError: return False