-
Notifications
You must be signed in to change notification settings - Fork 16k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core[patch], langchain[patch]: fix required deps (#14373)
- Loading branch information
Showing
34 changed files
with
1,528 additions
and
109 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import pytest | ||
|
||
|
||
@pytest.mark.compile | ||
def test_placeholder() -> None: | ||
"""Used for compiling integration tests without running any real tests.""" | ||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
"""Configuration for unit tests.""" | ||
from importlib import util | ||
from typing import Dict, Sequence | ||
|
||
import pytest | ||
from pytest import Config, Function, Parser | ||
|
||
|
||
def pytest_addoption(parser: Parser) -> None: | ||
"""Add custom command line options to pytest.""" | ||
parser.addoption( | ||
"--only-extended", | ||
action="store_true", | ||
help="Only run extended tests. Does not allow skipping any extended tests.", | ||
) | ||
parser.addoption( | ||
"--only-core", | ||
action="store_true", | ||
help="Only run core tests. Never runs any extended tests.", | ||
) | ||
|
||
|
||
def pytest_collection_modifyitems(config: Config, items: Sequence[Function]) -> None: | ||
"""Add implementations for handling custom markers. | ||
At the moment, this adds support for a custom `requires` marker. | ||
The `requires` marker is used to denote tests that require one or more packages | ||
to be installed to run. If the package is not installed, the test is skipped. | ||
The `requires` marker syntax is: | ||
.. code-block:: python | ||
@pytest.mark.requires("package1", "package2") | ||
def test_something(): | ||
... | ||
""" | ||
# Mapping from the name of a package to whether it is installed or not. | ||
# Used to avoid repeated calls to `util.find_spec` | ||
required_pkgs_info: Dict[str, bool] = {} | ||
|
||
only_extended = config.getoption("--only-extended") or False | ||
only_core = config.getoption("--only-core") or False | ||
|
||
if only_extended and only_core: | ||
raise ValueError("Cannot specify both `--only-extended` and `--only-core`.") | ||
|
||
for item in items: | ||
requires_marker = item.get_closest_marker("requires") | ||
if requires_marker is not None: | ||
if only_core: | ||
item.add_marker(pytest.mark.skip(reason="Skipping not a core test.")) | ||
continue | ||
|
||
# Iterate through the list of required packages | ||
required_pkgs = requires_marker.args | ||
for pkg in required_pkgs: | ||
# If we haven't yet checked whether the pkg is installed | ||
# let's check it and store the result. | ||
if pkg not in required_pkgs_info: | ||
try: | ||
installed = util.find_spec(pkg) is not None | ||
except Exception: | ||
installed = False | ||
required_pkgs_info[pkg] = installed | ||
|
||
if not required_pkgs_info[pkg]: | ||
if only_extended: | ||
pytest.fail( | ||
f"Package `{pkg}` is not installed but is required for " | ||
f"extended tests. Please install the given package and " | ||
f"try again.", | ||
) | ||
|
||
else: | ||
# If the package is not installed, we immediately break | ||
# and mark the test as skipped. | ||
item.add_marker( | ||
pytest.mark.skip(reason=f"Requires pkg: `{pkg}`") | ||
) | ||
break | ||
else: | ||
if only_extended: | ||
item.add_marker( | ||
pytest.mark.skip(reason="Skipping not an extended test.") | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,7 @@ | |
"Run", | ||
"RunLog", | ||
"RunLogPatch", | ||
"LogStreamCallbackHandler", | ||
] | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.