Files
openide/python/helpers/pycharm/_jb_django_behave.py
Ilya.Kazakevich 1da58424f2 PY-29497: Do not provide sys.argv[1:] to behave since they are already provided
_jb_django_behave.py:
"scenario_n_options" already contains all options and arguments
behave needs (see how this method is called).
No need to duplicate them using "sys.argv[1:]"

+tests added
2018-04-11 02:29:05 +03:00

36 lines
1.1 KiB
Python

# 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