mirror of
https://github.com/hwchase17/langchain.git
synced 2025-07-06 21:20:33 +00:00
Catch changes to test group (#4802)
# Catch changes to test group Add test to catch changes to test group.
This commit is contained in:
parent
c3b6129beb
commit
255690d78e
@ -104,6 +104,9 @@ linkchecker = "^10.2.1"
|
|||||||
sphinx-copybutton = "^0.5.1"
|
sphinx-copybutton = "^0.5.1"
|
||||||
|
|
||||||
[tool.poetry.group.test.dependencies]
|
[tool.poetry.group.test.dependencies]
|
||||||
|
# The only dependencies that should be added are
|
||||||
|
# dependencies used for running tests (e.g., pytest, freezegun, response).
|
||||||
|
# Any dependencies that do not meet that criteria will be removed.
|
||||||
pytest = "^7.3.0"
|
pytest = "^7.3.0"
|
||||||
pytest-cov = "^4.0.0"
|
pytest-cov = "^4.0.0"
|
||||||
pytest-dotenv = "^0.5.2"
|
pytest-dotenv = "^0.5.2"
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
"""A unit test meant to catch accidental introduction of non-optional dependencies."""
|
"""A unit test meant to catch accidental introduction of non-optional dependencies."""
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from typing import Any, Dict, Mapping
|
||||||
|
|
||||||
|
import pytest
|
||||||
import toml
|
import toml
|
||||||
|
|
||||||
HERE = Path(__file__).parent
|
HERE = Path(__file__).parent
|
||||||
@ -8,17 +10,21 @@ HERE = Path(__file__).parent
|
|||||||
PYPROJECT_TOML = HERE / "../../pyproject.toml"
|
PYPROJECT_TOML = HERE / "../../pyproject.toml"
|
||||||
|
|
||||||
|
|
||||||
def test_required_dependencies() -> None:
|
@pytest.fixture()
|
||||||
|
def poetry_conf() -> Dict[str, Any]:
|
||||||
|
"""Load the pyproject.toml file."""
|
||||||
|
with open(PYPROJECT_TOML) as f:
|
||||||
|
return toml.load(f)["tool"]["poetry"]
|
||||||
|
|
||||||
|
|
||||||
|
def test_required_dependencies(poetry_conf: Mapping[str, Any]) -> None:
|
||||||
"""A test that checks if a new non-optional dependency is being introduced.
|
"""A test that checks if a new non-optional dependency is being introduced.
|
||||||
|
|
||||||
If this test is triggered, it means that a contributor is trying to introduce a new
|
If this test is triggered, it means that a contributor is trying to introduce a new
|
||||||
required dependency. This should be avoided in most situations.
|
required dependency. This should be avoided in most situations.
|
||||||
"""
|
"""
|
||||||
with open(PYPROJECT_TOML) as f:
|
|
||||||
pyproject = toml.load(f)
|
|
||||||
|
|
||||||
# Get the dependencies from the [tool.poetry.dependencies] section
|
# Get the dependencies from the [tool.poetry.dependencies] section
|
||||||
dependencies = pyproject["tool"]["poetry"]["dependencies"]
|
dependencies = poetry_conf["dependencies"]
|
||||||
|
|
||||||
required_dependencies = [
|
required_dependencies = [
|
||||||
package_name
|
package_name
|
||||||
@ -40,3 +46,29 @@ def test_required_dependencies() -> None:
|
|||||||
"requests",
|
"requests",
|
||||||
"tenacity",
|
"tenacity",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def test_test_group_dependencies(poetry_conf: Mapping[str, Any]) -> None:
|
||||||
|
"""Check if someone is attempting to add additional test dependencies.
|
||||||
|
|
||||||
|
Only dependencies associated with test running infrastructure should be added
|
||||||
|
to the test group; e.g., pytest, pytest-cov etc.
|
||||||
|
|
||||||
|
Examples of dependencies that should NOT be included: boto3, azure, postgres, etc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
test_group_deps = sorted(poetry_conf["group"]["test"]["dependencies"])
|
||||||
|
|
||||||
|
assert test_group_deps == [
|
||||||
|
"duckdb-engine", # Should be removed
|
||||||
|
"freezegun",
|
||||||
|
"lark", # Should be removed
|
||||||
|
"pytest",
|
||||||
|
"pytest-asyncio",
|
||||||
|
"pytest-cov",
|
||||||
|
"pytest-dotenv",
|
||||||
|
"pytest-mock",
|
||||||
|
"pytest-socket",
|
||||||
|
"pytest-watcher",
|
||||||
|
"responses",
|
||||||
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user