django_example_ynh/django_ynh/pytest_helper.py
2020-12-29 11:42:34 +01:00

38 lines
1.1 KiB
Python

import os
import sys
from pathlib import Path
from django_ynh.local_test import create_local_test
from django_ynh.path_utils import assert_is_dir, assert_is_file
def run_pytest(django_settings_path, destination):
"""
1. Generate "local test installation"
2. Run pytest against generated sources
"""
assert_is_file(django_settings_path)
conf_path = django_settings_path.parent
base_path = conf_path.parent
test_path = Path(base_path / 'tests')
assert_is_dir(test_path)
final_home_path = create_local_test(
django_settings_path=django_settings_path,
destination=destination,
runserver=False,
)
django_settings_name = django_settings_path.stem
os.environ['DJANGO_SETTINGS_MODULE'] = django_settings_name
print(f'DJANGO_SETTINGS_MODULE={django_settings_name}')
sys.path.insert(0, str(final_home_path))
import pytest
# collect only project tests and pass existing pytest arguments:
sys.argv = [__file__, str(test_path)] + sys.argv[1:]
raise SystemExit(pytest.console_main())