diff --git a/dev-requirements.txt b/dev-requirements.txt index 550ab0d0e..5241aefd7 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -7,3 +7,4 @@ pytest-cov pytest-vcr pytest-mock requests-mock +setuptools diff --git a/tests/conftest.py b/tests/conftest.py index 311264122..46d8fc4a0 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,32 @@ # -*- coding: utf-8 -*- import os +import pkgutil import sys +import pkg_resources + sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../libs/")) sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../bazarr/")) + + +def pytest_report_header(config): + conflicting_packages = _get_conflicting("libs") + if conflicting_packages: + return f"Conflicting packages detected:\n{conflicting_packages}" + + +def _get_conflicting(path): + libs_packages = [] + for _, package_name, _ in pkgutil.iter_modules([path]): + libs_packages.append(package_name) + + installed_packages = pkg_resources.working_set + package_names = [package.key for package in installed_packages] + unique_package_names = set(package_names) + + conflicting = [] + for installed in unique_package_names: + if installed in libs_packages: + conflicting.append(installed) + + return conflicting