import echo_and_quit import py import pytest @pytest.fixture(scope="session") def datadir(): """The py.path.local object of the test-data/ directory.""" for path in reversed(py.path.local(__file__).parts()): datadir = path.join("test-data") if datadir.isdir(): return datadir pytest.skip("test-data directory not found") return None @pytest.mark.skip("The test is flaky in CI and crashes the interpreter as of 2025-11-12") def test_echo_quit_plugin(acfactory, lp): lp.sec("creating one echo_and_quit bot") botproc = acfactory.run_bot_process(echo_and_quit) lp.sec("creating a temp account to contact the bot") (ac1,) = acfactory.get_online_accounts(1) lp.sec("sending a message to the bot") bot_chat = ac1.qr_setup_contact(botproc.qr) ac1._evtracker.wait_securejoin_joiner_progress(1000) bot_chat.send_text("hello") lp.sec("waiting for the reply message from the bot to arrive") reply = ac1._evtracker.wait_next_incoming_message() assert reply.chat == bot_chat assert "hello" in reply.text lp.sec("send quit sequence") bot_chat.send_text("/quit") botproc.wait()