Setup and tear down test resource in streamlit with pytest

i have a codebase to test and I use pytest and streamlit AppTest class for testing my codebase.
The concern is in the project root dir i have a file named conftest.py and in this file i am setup and tear down test resources however i am getting issue i.e
*WARNING streamlit.runtime.state.session_state_proxy: Session state does not function when running a script without streamlit run*
i have tried

'''
conftest
========
SetUp and TearDown resource
'''


import pytest
from app.ui.Elements.test import setup_testing_resource, cleanup_testing_resource

@pytest.fixture(scope="session", autouse=True)
def setup_and_teardown():
    # Setup code before running tests
    setup_testing_resource()

    # Control to the test functions
    yield

    # Teardown code after all tests are completed
    cleanup_testing_resource()

i am getting issue on the statement “snowflake_session = connection.Connection.get()”

any kind of help will be appreciated.

Hello @ss_mohanty,

Ensure that the setup and teardown processes do not depend on Streamlit’s session state (or other functionalities). If the connection setup (e.g., snowflake_session = connection.Connection.get() ) relies on Streamlit’s session state, consider refactoring to remove this dependency for testing purposes.

For testing parts of your codebase that do require Streamlit’s session state, consider using mock objects to simulate Streamlit’s behavior. Python’s unittest.mock module can be very helpful here:

from unittest.mock import patch

@pytest.fixture(scope="session", autouse=True)
def setup_and_teardown():
    with patch('streamlit.session_state', new_callable=MockSessionState):
        setup_testing_resource()
        yield
        cleanup_testing_resource()

Hope this helps!

Kind Regards,
Sahir Maharaj
Data Scientist | AI Engineer

P.S. Lets connect on LinkedIn!

➤ Want me to build your solution? Lets chat about how I can assist!
➤ Join my Medium community of 30k readers! Sharing my knowledge about data science and AI
➤ Website: https://sahirmaharaj.com
➤ Email: sahir@sahirmaharaj.com
➤ 100+ FREE Power BI Themes: Download Now

2 Likes

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.