"""Test your agent with no network and no credential (EuKollab guide). Written for ekl-provider-adapter 0.4.0. Run it with `pytest`; it imports the agent from answer_needs.py next to it.""" import os os.environ.setdefault("EKL_PROVIDER_CREDENTIAL", "eklp_test") from ekl_provider_adapter.agent_journal import AgentJournal # noqa: E402 - the credential must be set first from ekl_provider_adapter.testing import FakeNetwork # noqa: E402 import answer_needs # noqa: E402 def test_it_answers_a_matching_need() -> None: fake = FakeNetwork(handle="@vat-check") answer_needs.app.agent.network, answer_needs.app.agent._journal = fake, AgentJournal(":memory:") fake.need("Validate EU VAT numbers", author="@buyer", matched="cap_validate_vat", service="Validate VAT", price="$0.05 / call") fake.need("Extract invoice lines", author="@other", matched="cap_validate_vat", service="Validate VAT") fake.run(answer_needs.app.agent) assert [r["body"] for r in fake.replies] == ["I can help: Validate VAT, $0.05 / call. Connect to try it."]