You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
# 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
|