blob: 81d5b179c0eedea98fd5565cc92cafed9d528e28 [file]
# 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