mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-24 07:35:18 +00:00
explicitly set global verbosity flag in unit tests that test callbacks (#502)
If another file anywhere in `unit_tests` sets `langchain.verbose = True`, it messes up all of the tests that check for no callbacks because the `None` for verbose gets overridden by the global verbosity flag. By explicitly setting it in unit tests, we bypass that potential issue
This commit is contained in:
parent
aae3609aa8
commit
db5c8e0c42
@ -65,8 +65,11 @@ def test_agent_stopped_early() -> None:
|
|||||||
assert output == "Agent stopped due to max iterations."
|
assert output == "Agent stopped due to max iterations."
|
||||||
|
|
||||||
|
|
||||||
def test_agent_with_callbacks() -> None:
|
def test_agent_with_callbacks_global() -> None:
|
||||||
"""Test react chain with callbacks."""
|
"""Test react chain with callbacks by setting verbose globally."""
|
||||||
|
import langchain
|
||||||
|
|
||||||
|
langchain.verbose = True
|
||||||
handler = FakeCallbackHandler()
|
handler = FakeCallbackHandler()
|
||||||
manager = CallbackManager([handler])
|
manager = CallbackManager([handler])
|
||||||
tool = "Search"
|
tool = "Search"
|
||||||
@ -85,6 +88,41 @@ def test_agent_with_callbacks() -> None:
|
|||||||
verbose=True,
|
verbose=True,
|
||||||
callback_manager=manager,
|
callback_manager=manager,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
output = agent.run("when was langchain made")
|
||||||
|
assert output == "curses foiled again"
|
||||||
|
|
||||||
|
# 1 top level chain run, 2 LLMChain runs, 2 LLM runs, 1 tool run
|
||||||
|
assert handler.starts == 6
|
||||||
|
# 1 extra agent end
|
||||||
|
assert handler.ends == 7
|
||||||
|
assert handler.errors == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_agent_with_callbacks_local() -> None:
|
||||||
|
"""Test react chain with callbacks by setting verbose locally."""
|
||||||
|
import langchain
|
||||||
|
|
||||||
|
langchain.verbose = False
|
||||||
|
handler = FakeCallbackHandler()
|
||||||
|
manager = CallbackManager([handler])
|
||||||
|
tool = "Search"
|
||||||
|
responses = [
|
||||||
|
f"FooBarBaz\nAction: {tool}\nAction Input: misalignment",
|
||||||
|
"Oh well\nAction: Final Answer\nAction Input: curses foiled again",
|
||||||
|
]
|
||||||
|
fake_llm = FakeListLLM(responses=responses, callback_manager=manager, verbose=True)
|
||||||
|
tools = [
|
||||||
|
Tool("Search", lambda x: x, "Useful for searching"),
|
||||||
|
]
|
||||||
|
agent = initialize_agent(
|
||||||
|
tools,
|
||||||
|
fake_llm,
|
||||||
|
agent="zero-shot-react-description",
|
||||||
|
verbose=True,
|
||||||
|
callback_manager=manager,
|
||||||
|
)
|
||||||
|
|
||||||
agent.agent.llm_chain.verbose = True
|
agent.agent.llm_chain.verbose = True
|
||||||
|
|
||||||
output = agent.run("when was langchain made")
|
output = agent.run("when was langchain made")
|
||||||
@ -99,6 +137,9 @@ def test_agent_with_callbacks() -> None:
|
|||||||
|
|
||||||
def test_agent_with_callbacks_not_verbose() -> None:
|
def test_agent_with_callbacks_not_verbose() -> None:
|
||||||
"""Test react chain with callbacks but not verbose."""
|
"""Test react chain with callbacks but not verbose."""
|
||||||
|
import langchain
|
||||||
|
|
||||||
|
langchain.verbose = False
|
||||||
handler = FakeCallbackHandler()
|
handler = FakeCallbackHandler()
|
||||||
manager = CallbackManager([handler])
|
manager = CallbackManager([handler])
|
||||||
tool = "Search"
|
tool = "Search"
|
||||||
|
@ -150,6 +150,10 @@ def test_run_with_callback() -> None:
|
|||||||
|
|
||||||
def test_run_with_callback_not_verbose() -> None:
|
def test_run_with_callback_not_verbose() -> None:
|
||||||
"""Test run method works when callback manager is passed and not verbose."""
|
"""Test run method works when callback manager is passed and not verbose."""
|
||||||
|
import langchain
|
||||||
|
|
||||||
|
langchain.verbose = False
|
||||||
|
|
||||||
handler = FakeCallbackHandler()
|
handler = FakeCallbackHandler()
|
||||||
chain = FakeChain(callback_manager=CallbackManager([handler]))
|
chain = FakeChain(callback_manager=CallbackManager([handler]))
|
||||||
output = chain.run("bar")
|
output = chain.run("bar")
|
||||||
|
@ -17,6 +17,10 @@ def test_llm_with_callbacks() -> None:
|
|||||||
|
|
||||||
def test_llm_with_callbacks_not_verbose() -> None:
|
def test_llm_with_callbacks_not_verbose() -> None:
|
||||||
"""Test LLM callbacks but not verbose."""
|
"""Test LLM callbacks but not verbose."""
|
||||||
|
import langchain
|
||||||
|
|
||||||
|
langchain.verbose = False
|
||||||
|
|
||||||
handler = FakeCallbackHandler()
|
handler = FakeCallbackHandler()
|
||||||
llm = FakeLLM(callback_manager=CallbackManager([handler]))
|
llm = FakeLLM(callback_manager=CallbackManager([handler]))
|
||||||
output = llm("foo")
|
output = llm("foo")
|
||||||
|
Loading…
Reference in New Issue
Block a user